image not found img not found

Inovelli Community

Getting homeassistant and lzw30-sn scenes working together

I am trying to get scenes working in homeassistant. (I did read this already.) I edited the .xml files that need to be edited and the edits are still there so that’s not the problem. I did gain the config options to show up in the zwave config panel and I can now change the led color/intensity etc… However scenes just dont show up still. Here is the relevent part of my zwcfg_*.xml file:

	<Node id="16" name="" location="" basic="4" generic="16" specific="1" roletype="5" devicetype="1793" nodetype="0" type="Binary Power Switch" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="31e" name="Unknown: id=031e">
			<Product type="2" id="1" name="Unknown: type=0002, id=0001" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" mapping="37">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="34" name="COMMAND_CLASS_APPLICATION_STATUS" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
			</CommandClass>
			<CommandClass id="39" name="COMMAND_CLASS_SWITCH_ALL" version="1" request_flags="4">
				<Instance index="1" />
				<Value type="list" genre="system" instance="1" index="0" label="Switch All" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Disabled" value="0" />
					<Item label="Off Enabled" value="1" />
					<Item label="On Enabled" value="2" />
					<Item label="On and Off Enabled" value="255" />
				</Value>
			</CommandClass>
			<CommandClass id="50" name="COMMAND_CLASS_METER" version="3" request_flags="2" innif="true">
				<Instance index="1" />
				<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.116" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Previous Reading" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.104" />
				<Value type="int" genre="user" instance="1" index="2" label="Interval" units="seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="648" />
				<Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="69.2" />
				<Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
				<Value type="button" genre="system" instance="1" index="33" label="Reset" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
			</CommandClass>
			<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" innif="true" scenecount="0">
				<Instance index="1" />
				<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="2" />
				<Value type="int" genre="user" instance="1" index="1" label="Bottom Button Scene" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="3" />
				<Value type="int" genre="user" instance="1" index="2" label="Top Button Scene" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="3" />
			</CommandClass>
			<CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="1793" />
				<Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="1793" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="1" label="Power On State" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="0" size="1">
					<Help>When Power is restored Range: 0-2 Default: 0</Help>
					<Item label="Previous" value="0" />
					<Item label="On" value="1" />
					<Item label="Off" value="2" />
				</Value>
				<Value type="list" genre="config" instance="1" index="2" label="Invert Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="0" size="1">
					<Help>Inverts the orientation of the switch. Useful when the switch is installed upside down. Essentially up becomes down and down becomes up. Range: 0-1 Default: 0</Help>
					<Item label="Disabled" value="0" />
					<Item label="Enabled" value="1" />
				</Value>
				<Value type="short" genre="config" instance="1" index="3" label="Auto Off Timer" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="32767" value="0">
					<Help>Automatically turns the switch off after this many seconds. When the switch is turned on a timer is started that is the duration of this setting. When the timer expires, the switch is turned off. Range: 0-32767 Default: 0</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="4" label="Association Behavior" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="15" value="15">
					<Help>When should the switch send commands to associated devices? 01 - local 02 - 3way 03 - 3way &amp; local 04 - z-wave hub 05 - z-wave hub &amp; local 06 - z-wave hub &amp; 3-way 07 - z-wave hub &amp; local &amp; 3way 08 - timer 09 - timer &amp; local 10 - timer &amp; 3-way 11 - timer &amp; 3-way &amp; local 12 - timer &amp; z-wave hub 13 - timer &amp; z-wave hub &amp; local 14 - timer &amp; z-wave hub &amp; 3-way 15 - all Range: 0-15 Default: 15</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="5" label="LED Indicator Color" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="170">
					<Help>This is the color of the LED strip. Range: 0 to 255 Default: 170</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="6" label="LED Indicator Intensity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" value="5">
					<Help>This is the intensity of the LED strip. Range: 0-10 Default: 5</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="7" label="LED Indicator Intensity (When Off)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" value="1">
					<Help>This is the intensity of the LED strip when the switch is off. This is useful for users to see the light switch location when the lights are off. Range: 0 - 10 Default: 0</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="8" label="LED Strip Effect" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="83823359" value="0">
					<Help>Please see website for documentation. Range: 0-83823359 Default: 0</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="10" label="Active Power Alerts" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="10">
					<Help>The power level change that will result in a new power report being sent. The value is a percentage of the previous report. 0 = disabled. Range: 0-100 Default: 10</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="11" label="Periodic Power + Energy Reports" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="32767" value="3600">
					<Help>Time period between consecutive power &amp; energy reports being sent (in seconds). The timer is reset after each report is sent. Range: 0 to 32767 Default: 3600</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="12" label="Energy Reports" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="10">
					<Help>The energy level change that will result in a new energy report being sent. The value is a percentage of the previous report. Range: 0-100 Default: 10</Help>
				</Value>
			</CommandClass>
			<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Failed" value="0" />
					<Item label="Success" value="1" />
					<Item label="In Progress" value="2" />
				</Value>
				<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="117" name="COMMAND_CLASS_PROTECTION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="list" genre="system" instance="1" index="0" label="Protection" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Unprotected" value="0" />
					<Item label="Protection by Sequence" value="1" />
					<Item label="No Operation Possible" value="2" />
				</Value>
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Associations num_groups="2">
					<Group index="1" max_associations="5" label="Group 1" auto="true">
						<Node id="1" />
					</Group>
					<Group index="2" max_associations="5" label="Group 2" auto="false" />
				</Associations>
			</CommandClass>
			<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
				<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="6.04" />
				<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="1.09" />
			</CommandClass>
		</CommandClasses>
	</Node>

What am I missing?

Does anything show up in your OZW_Log.txt file when you try triggering scenes? That could at least help pinpoint if it is a potential config issue with OZW, or something with HA.

I think this is from when the zwave network was started:

2020-02-08 23:47:43.016 Detail, Node016, Query Stage Complete (Neighbors)
2020-02-08 23:47:43.016 Detail, Node016, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Session live=1
2020-02-08 23:47:43.016 Detail, Node016, QueryStage_Session
2020-02-08 23:47:43.016 Detail, Node016, Queuing (Query) SwitchAllCmd_Get (Node=16): 0x01, 0x09, 0x00, 0x13, 0x10, 0x02, 0x27, 0x02, 0x25, 0x2c, 0xdb
2020-02-08 23:47:43.016 Info, Node016, CentralScene RequestState: 2
2020-02-08 23:47:43.016 Info, Node016, CentralScene: Not a StaticRequest
2020-02-08 23:47:43.016 Detail, Node016, Queuing (Query) PowerlevelCmd_Get (Node=16): 0x01, 0x09, 0x00, 0x13, 0x10, 0x02, 0x73, 0x02, 0x25, 0x2d, 0x8e
2020-02-08 23:47:43.016 Detail, Node016, Queuing (Query) ProtectionCmd_Get (Node=16): 0x01, 0x09, 0x00, 0x13, 0x10, 0x02, 0x75, 0x02, 0x25, 0x2e, 0x8b
2020-02-08 23:47:43.016 Detail, Node016, Queuing (Query) Query Stage Complete (Session)

and this is from when I pressed the buttons:

2020-02-09 06:53:12.204 Detail, Node016,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x10, 0x05, 0x5b, 0x03, 0x11, 0x80, 0x02, 0x2e
2020-02-09 06:53:12.204 Detail,
2020-02-09 06:53:12.204 Info, Node016, Received Central Scene set from node 16: scene id=2 in 7680 seconds. Sending event notification.
2020-02-09 06:53:12.204 Detail, Node016, Refreshed Value: old value=7680, new value=7680, type=int
2020-02-09 06:53:12.204 Detail, Node016, Changes to this value are not verified
2020-02-09 06:53:12.205 Detail, Node016, Notification: ValueChanged
2020-02-09 06:53:12.304 Detail, Node016,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x10, 0x03, 0x25, 0x03, 0xff, 0x38
2020-02-09 06:53:12.304 Detail,
2020-02-09 06:53:12.304 Info, Node016, Received SwitchBinary report from node 16: level=On
2020-02-09 06:53:12.304 Detail, Node016, Refreshed Value: old value=false, new value=true, type=bool
2020-02-09 06:53:12.304 Detail, Node016, Changes to this value are not verified
2020-02-09 06:53:12.304 Detail, Node016, Notification: ValueChanged
2020-02-09 06:53:13.806 Detail, Node016,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x10, 0x05, 0x5b, 0x03, 0x12, 0x80, 0x01, 0x2e
2020-02-09 06:53:13.806 Detail,
2020-02-09 06:53:13.806 Info, Node016, Received Central Scene set from node 16: scene id=1 in 7680 seconds. Sending event notification.
2020-02-09 06:53:13.806 Detail, Node016, Refreshed Value: old value=7680, new value=7680, type=int
2020-02-09 06:53:13.806 Detail, Node016, Changes to this value are not verified
2020-02-09 06:53:13.806 Detail, Node016, Notification: ValueChanged
2020-02-09 06:53:13.976 Detail, Node016,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x10, 0x03, 0x25, 0x03, 0x00, 0xc7
2020-02-09 06:53:13.976 Detail,
2020-02-09 06:53:13.976 Info, Node016, Received SwitchBinary report from node 16: level=Off
2020-02-09 06:53:13.976 Detail, Node016, Refreshed Value: old value=true, new value=false, type=bool
2020-02-09 06:53:13.976 Detail, Node016, Changes to this value are not verified
2020-02-09 06:53:13.977 Detail, Node016, Notification: ValueChanged

This is not from right now but it is from this switch and from activating a scene by multi-pressing the button.

edit:
This is from just now. (I pressed config button once and double-clicked down button):

2020-02-09 11:44:21.941 Detail, Node016,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x10, 0x05, 0x5b, 0x03, 0x14, 0x80, 0x03, 0x2a
2020-02-09 11:44:21.941 Detail,
2020-02-09 11:44:21.941 Info, Node016, Received Central Scene set from node 16: scene id=3 in 7680 seconds. Sending event notification.
2020-02-09 11:44:21.941 Warning, Node016, No ValueID created for Scene 3
2020-02-09 11:44:26.542 Detail, Node016,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x10, 0x05, 0x5b, 0x03, 0x15, 0x83, 0x01, 0x2a
2020-02-09 11:44:26.542 Detail,
2020-02-09 11:44:26.542 Info, Node016, Received Central Scene set from node 16: scene id=1 in 7860 seconds. Sending event notification.
2020-02-09 11:44:26.542 Detail, Node016, Refreshed Value: old value=7680, new value=7860, type=int
2020-02-09 11:44:26.542 Detail, Node016, Changes to this value are not verified
2020-02-09 11:44:26.543 Detail, Node016, Notification: ValueChanged

It looks like OZW is detecting the scenes, so it could just be something wrong with your automation. Here are the various scene ids for HA/OZW 1.4:

Button Press Scene ID Scene Data
1 x Up 2 7680
2 x Up 2 7860
3 x Up 2 7920
4 x Up 2 7980
5 x Up 2 8040
HOLD Up 2 7800
Release Up (after hold) 2 7740
1 x Down 1 7680
2 x Down 1 7860
3 x Down 1 7920
4 x Down 1 7980
5 x Down 1 8040
HOLD Down 1 7800
Release Down (after hold) 1 7740
1 x Config 3 7680

I believe your automation trigger should look something like this:

automation
  - alias: 'Dining room dimmer - double tap up'
    trigger:
      - event_type: zwave.scene_activated
        platform: event
        event_data:
          entity_id: zwave.dining_room_cans
          scene_id: 2
          scene_data: 7860

Maybe I am missing (understanding) something. I didn’t make an automation yet because when I go to hass:8123/developer-tools/event there is no event listed as zwave.scene_activated. I thought (think?) that it is supposed to be there if there is such an event possible.

Unfortunately, I have switched to OpenZwave 1.6 (using zwave2MQTT instead of the version of OZW built-in to HA), so I don’t have a way to check the events on my own setup.

Did you make sure HA was shut down before editing your zwcfg*.xml file? I believe HA overwrites this file on shutdown, and only reads it at startup. If you edited this file while HA was running, perhaps not everything has loaded.

I would also recommend setting an an automation anyway, just in case. There is always a possibility that HA just isnt logging the zwave scene events.

OK I will ask in HASS forums maybe. Yes I did make sure hass was shutdown and the config change is sticking (and I was able to add the configs to change the led settings etc because of that).
I also did add an automation but I don’t have a good way to test so I’m not sure if htere is a mistake in the automation.
BTW:
Is there any noticeable delay by using zwave2mqtt instead of builtin hass pyozw?

I havent noticed any delays. It took a bit longer to get everything configured, but I like it a lot more than the built-in method.

Ok I found this:


It has the openzwave 1.4 (the version HASS still uses which is old, hopefully they’ll catch up one day) configuration files. I didn’t check the diff but the files I was using were apparently for ozw 1.6.

I think this should be documented somewhere for homeassistant users…
Maybe @EricM_Inovelli can help with that.

Yeah, looks like you might have skimmed over the step that said to grab the 1.4 branch and not the master branch from github. If you run into anything else, feel free to mention me, I’m running the native HA OZW manager (plus node red) with no issues at this point.

1 Like

Exactly. Thank you. I didn’t process it fully.