Help with Aeotec Door Sensor 7 + Zooz ZEN16 Multirelay

Folks,

I’m running a straight legacy 1.4 z-wave install on a Raspberry PI 4 with hassio (as was). I’m running Supervisor 229 and 0.112.4. I’m trying to add support for both the Aeotec Door Sensor 7 and the Zooz ZEN16 multi relay.

I know that 1.4 is essentially orphaned at this point from a new device PoV but managed to find the definitions for the two devices in the open-zwave 1.6 repo. I’ve manually added devices before and it’s been fine (I have a z-wave network of about 50 devices).

However, this is the first time I’ve done it for a while. Both devices show up in the z-wave configuration as valid nodes and the configuration parameters are shown correctly (so it’s parsing the XML just fine).

However, I’m not seeing entities created for the new nodes. Has anyone got either of these devices working in the legacy z-wave setup (i.e. not the mqtt and 1.6 beta stuff)? If not, has anyone got any advice for what to chase down to try to get the two nodes to generate entities. The zwcfg looks good as far as it does to me but I realized I’m unclear as to how the current code generates entities from this.

I’m guessing that this is driven from device_class and/or explicit CommandClass definitions but I’m not really getting much tractions. I’ve listed both definitions below which are straight from the 1.6 code with the stuff filled in by hand.

Any clues or pointers appreciated.

Cheers!

Scott…

	<Node id="44" name="" location="" basic="4" generic="7" specific="1" type="Notification Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="371" name="Aeotec Limited">
			<Product type="2" id="c" name="ZWA012 Door Window Sensor 7 Pro" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="1" label="Sensor Operation Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="0" size="1">
					<Help>This parameter defines if the internal magnet sensor or the external terminal input is detected and used to issue alarm notification. There is always one input active only. The other sensor input the deactivated.</Help>
					<Item label="Internal Magnet Sensor Used" value="0" />
					<Item label="External Terminal Inputs Used" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="2" label="Sensor State Polarity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="0" size="1">
					<Help>This parameter defines the polarity of the magnet sensor.</Help>
					<Item label="Closed when Magnet in proximity" value="0" />
					<Item label="Opened when Magnet in proximity" value="1" />
				</Value>
				<Value type="bool" genre="config" instance="1" index="3" label="Visual LED indications" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="7" value="False">
					<Help>This parameter defines when the red LED will indicate events. Disabling all indications may extend battery life.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="4" label="Range test after double click" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="0" size="1">
					<Help>Allows to enable activation of Z-Wave range test with double click of a Tamper Switch.</Help>
					<Item label="Disable" value="0" />
					<Item label="Enable" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="5" label="2nd Association Group triggers" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="0" size="1">
					<Help>This parameter defines the status of the magnet switch that causes sending a BASIC command to all devices of Association Group 2.</Help>
					<Item label="Switch after opening and closing" value="0" />
					<Item label="Switch after opening" value="1" />
					<Item label="Switch after closing" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="6" label="Commands sent to 2nd Association Group" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="2" size="1">
					<Help>Command frames sent to devices added to the 2nd association group.</Help>
					<Item label="On" value="0" />
					<Item label="Off" value="1" />
					<Item label="On and Off" value="2" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="7" label="BASIC command value sent to 2nd Association Group on On event" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="255">
					<Help>The value of 0 turns OFF the device, 255 turns it On. In case of associating the Dimmer or Roller Shutter module, values 1-99 allow to set an Associated device to a specified level.</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="8" label="BASIC command value sent to 2nd Association Group on Off event" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
					<Help>The value of 0 turns OFF the device, 255 turns it On. In case of associating the Dimmer or Roller Shutter module, values 1-99 allow to set an Associated device to a specified level.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="9" label="Time delay of ON command frame" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="32400" value="0">
					<Help>Time period after which On command frame will be sent.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="10" label="Time delay of OFF command frame" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="32400" value="0">
					<Help>Time period after which Off command frame will be sent.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="11" label="Delay of tamper alarm cancellation" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="32400" value="5">
					<Help>Time period after which a tamper alarm will be cancelled.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="12" label="Reporting tamper alarm cancellation" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="1" size="1">
					<Help>Reporting cancellation of tamper alarm to the controller and 5th Association Group.</Help>
					<Item label="Do not send tamper cancellation report" value="0" />
					<Item label="Send tamper cancellation report" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="13" label="Scene activation functionality" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="0" size="1">
					<Help>This parameter enables/disables the central scene function.</Help>
					<Item label="Disable" value="0" />
					<Item label="Enable" value="1" />
				</Value>
				<Value type="list" genre="config" instance="1" index="14" label="Tilt Sensor Functionality" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="1" size="1">
					<Help>This parameter enables/disables the tilt function.</Help>
					<Item label="Disable" value="0" />
					<Item label="Enable" value="1" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="15" label="Tilt sensitivity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="50">
					<Help>You can use this parameter to adjust the tilt sensitivity if the tilt is too low or too high.</Help>
				</Value>
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="2">
				<Instance index="1" />
				<Associations num_groups="4">
					<Group index="1" max_associations="5" label="Lifeline" auto="true" />
					<Group index="2" max_associations="5" label="Control" auto="false" />
					<Group index="3" max_associations="5" label="Alarm sensor" auto="false" />
					<Group index="4" max_associations="5" label="Alarm tamper" auto="false" />
				</Associations>
			</CommandClass>
		</CommandClasses>
	</Node>
	<Node id="45" name="" location="" basic="4" generic="16" specific="1" type="Binary Power Switch" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="27a" name="Zooz">
			<Product type="a000" id="a00a" name="ZEN16 Multirelay" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="1" label="On Off Status After Power Failure" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="4" vindex="1" size="1">
					<Help>On Off Status After Power Failure. Default: all relays restore to previous state</Help>
					<Item label="all relays forced off" value="0" />
					<Item label="all relays restore to previous state" value="1" />
					<Item label="all relays forced on" value="2" />
					<Item label="relays 1/2 restore, 3/4 forced off" value="3" />
					<Item label="relays 1/2 restore, 3/4 forced on" value="4" />
				</Value>
				<Value type="list" genre="config" instance="1" index="2" label="Switch Type for Relay 1 (Sw1)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="3" vindex="2" size="1">
					<Help>Switch Type for Relay 1 (Sw1). Choose the wall switch type you want to connect to the Sw1 terminal. Default: toggle switch (state changes whenever the switch is toggled)</Help>
					<Item label="momentary switch" value="0" />
					<Item label="toggle switch (light on when switch is up/off when down)" value="1" />
					<Item label="toggle switch (state changes whenever the switch is toggled)" value="2" />
					<Item label="garage door (momentary mode for Z-Wave control)" value="3" />
				</Value>
				<Value type="list" genre="config" instance="1" index="3" label="Switch Type for Relay 2 (Sw2)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="3" vindex="2" size="1">
					<Help>Switch Type for Relay 2 (Sw2). Choose the wall switch type you want to connect to the Sw2 terminal. Default: toggle switch (state changes whenever the switch is toggled)</Help>
					<Item label="momentary switch" value="0" />
					<Item label="toggle switch (light on when switch is up/off when down)" value="1" />
					<Item label="toggle switch (state changes whenever the switch is toggled)" value="2" />
					<Item label="garage door (momentary mode for Z-Wave control)" value="3" />
				</Value>
				<Value type="list" genre="config" instance="1" index="4" label="Switch Type for Relay 3 (Sw3)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="3" vindex="2" size="1">
					<Help>Switch Type for Relay 3 (Sw3). Choose the wall switch type you want to connect to the Sw3 terminal. Default: toggle switch (state changes whenever the switch is toggled)</Help>
					<Item label="momentary switch" value="0" />
					<Item label="toggle switch (light on when switch is up/off when down)" value="1" />
					<Item label="toggle switch (state changes whenever the switch is toggled)" value="2" />
					<Item label="garage door (momentary mode for Z-Wave control)" value="3" />
				</Value>
				<Value type="list" genre="config" instance="1" index="5" label="LED Indicator Control" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="3" vindex="0" size="1">
					<Help>LED Indicator Control. Choose if you want the LED indicator to turn on when any of the relays are on or if all of them are off, or if you want it to remain on or off at all times. Default: On when all relays are off</Help>
					<Item label="On when all relays are off" value="0" />
					<Item label="On when any relays are on" value="1" />
					<Item label="Always Off" value="2" />
					<Item label="Always On" value="3" />
				</Value>
				<Value type="int" genre="config" instance="1" index="6" label="Auto Turn-Off Timer for Relay 1" units="minutes" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="0">
					<Help>Auto Turn-Off Timer for Relay 1. Sets the time (in minutes) after which you want relay 1 to automatically turn off once it has been turned on. Range: 1-65535. Default: 0 (disabled)</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="7" label="Auto Turn-On Timer for Relay 1" units="minutes" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="0">
					<Help>Auto Turn-On Timer for Relay 1. Sets the time (in minutes) after which you want relay 1 to automatically turn on once it has been turned off. Range: 1-65535. Default: 0 (disabled)</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="8" label="Auto Turn-Off Timer for Relay 2" units="minutes" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="0">
					<Help>Auto Turn-Off Timer for Relay 2. Sets the time (in minutes) after which you want relay 2 to automatically turn off once it has been turned on. Range: 1-65535. Default: 0 (disabled)</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="9" label="Auto Turn-On Timer for Relay 2" units="minutes" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="0">
					<Help>Auto Turn-On Timer for Relay 2. Sets the time (in minutes) after which you want relay 2 to automatically turn on once it has been turned off. Range: 1-65535. Default: 0 (disabled)</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="10" label="Auto Turn-Off Timer for Relay 3" units="minutes" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="0">
					<Help>Auto Turn-Off Timer for Relay 3. Sets the time (in minutes) after which you want relay 3 to automatically turn off once it has been turned on. Range: 1-65535. Default: 0 (disabled)</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="11" label="Auto Turn-On Timer for Relay 3" units="minutes" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="65535" value="0">
					<Help>Auto Turn-On Timer for Relay 3. Sets the time (in minutes) after which you want relay 3 to automatically turn on once it has been turned off. Range: 1-65535. Default: 0 (disabled)</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="12" label="Enable/Disable Manual Control for SW1" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="1" size="1">
					<Help>Enable/Disable Manual Control for SW1. Default: enabled</Help>
					<Item label="disabled" value="0" />
					<Item label="enabled" value="1" />
					<Item label="local control disabled with enable on/off reports" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="13" label="Enable/Disable Manual Control for SW2" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="1" size="1">
					<Help>Enable/Disable Manual Control for SW2. Default: enabled</Help>
					<Item label="disabled" value="0" />
					<Item label="enabled" value="1" />
					<Item label="local control disabled with enable on/off reports" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="14" label="Enable/Disable Manual Control for SW3" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="1" size="1">
					<Help>Enable/Disable Manual Control for SW3. Default: enabled</Help>
					<Item label="disabled" value="0" />
					<Item label="enabled" value="1" />
					<Item label="local control disabled with enable on/off reports" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="15" label="Auto Turn-Off Timer Unit for Relay 1" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
					<Help>Choose between second, minutes, and hours as the unit for Auto Turn-Off time for Relay 1. Default: minutes</Help>
					<Item label="minutes" value="0" />
					<Item label="seconds" value="1" />
					<Item label="hours" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="16" label="Auto Turn-On Timer Unit for Relay 1" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
					<Help>Choose between second, minutes, and hours as the unit for Auto Turn-On time for Relay 1. Default: minutes</Help>
					<Item label="minutes" value="0" />
					<Item label="seconds" value="1" />
					<Item label="hours" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="17" label="Auto Turn-Off Timer Unit for Relay 2" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
					<Help>Choose between second, minutes, and hours as the unit for Auto Turn-Off time for Relay 2. Default: minutes</Help>
					<Item label="minutes" value="0" />
					<Item label="seconds" value="1" />
					<Item label="hours" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="18" label="Auto Turn-On Timer Unit for Relay 2" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
					<Help>Choose between second, minutes, and hours as the unit for Auto Turn-On time for Relay 2. Default: minutes</Help>
					<Item label="minutes" value="0" />
					<Item label="seconds" value="1" />
					<Item label="hours" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="19" label="Auto Turn-Off Timer Unit for Relay 3" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
					<Help>Choose between second, minutes, and hours as the unit for Auto Turn-Off time for Relay 3. Default: minutes</Help>
					<Item label="minutes" value="0" />
					<Item label="seconds" value="1" />
					<Item label="hours" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="20" label="Auto Turn-On Timer Unit for Relay 3" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
					<Help>Choose between second, minutes, and hours as the unit for Auto Turn-On time for Relay 3. Default: minutes</Help>
					<Item label="minutes" value="0" />
					<Item label="seconds" value="1" />
					<Item label="hours" value="2" />
				</Value>
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1">
				<Instance index="1" />
				<Associations num_groups="4">
					<Group index="1" max_associations="1" label="Lifeline" auto="true" />
					<Group index="2" max_associations="5" label="Relay 1 Status" auto="false" />
					<Group index="3" max_associations="5" label="Relay 2 Status" auto="false" />
					<Group index="4" max_associations="5" label="Relay 3 Status" auto="false" />
				</Associations>
			</CommandClass>
		</CommandClasses>
	</Node>

My Zooz Multirelay shows up as an unknown device in my Home Assistant. The four relays show up as four unknown switches in this format: [switch.zooz_unknown_type_a000_id_a00a_switch]
If I hook the relay up to my garage door opener, flipping the switch to on will activate the garage door. You need a separate sensor to know if you are opening or closing the garage door. I use an Ecolink Garage Door Tilt Sensor to know if the door is open or closed.

Don’t know if that helps your particular question, but I didn’t need to fool around in the XML.