I installed an LZW30-SN and LZW31-SN this morning. I’m running Hassio 0.107.7 with a z-stick 5. I ran into two unusual things when installing. First, I was unable to pair using HA’s Add Node button so I removed the z-stick, brought it close to the devices, paired successfully, plugged it back into the HA host, rebooted, and the devices were detected but were both of “unknown” type. I found in this forum the instructions for updating openzwave configuration, so I unpaired both switches, followed the instructions to pull in the newer config, rebooted, paired both switches again, but now I’m left in a state where both switches appear in HA, the LZW31-SN appears fully functional… I can change the level, toggle, and see the power sensors… but the LZW30-SN only has power sensors, no ability to toggle. There’s no switch entity.
When I open the device I see:
Type: LZW30-SN Switch Red Series by Inovelli
Entities:
By the time I got back to this the light entity appeared and all seems to be working again. Is that normal? I’m pretty sure I didn’t touch anything and it was fine the next day. Looking at the config, I now realize that the other Inovelli dimmer that I thought was working fine is actually missing the Inovelli specific node configuration options on the Zwave and is showing up as an unknown type in the config. Maybe I need to remove/add the device again? Thanks for your help!
This makes me think either you didn’t do the whole custom OZW config steps, or while you did it Home Assistant was still running and it over-wrote the files on you (Zwave network needs to be stopped to edit those files because it over-writes the files periodically, and can do so while you are trying to edit them. Make sure you’ve complete all the steps in this guide (step 1 should be stop Z-wave network, still missing from that guide).
If you did that, double check your manufacturer_specific.xml looks correct.
Once that is solved, I believe you can manually over-write the zwcfg_.xml for that node with the correct information, and avoid removing and adding the node, but I’m not entirely sure, so I’d suggest making a snapshot and backing it up elsewhere before attempting.
Here’s my dimmer info from that file. I think if you replace everything but correct your node ID, it should work (make sure all switch config options are set correctly to what you need, mine’s set to neutral and 3-way dumb switch)
<Node id="11" name="" location="" basic="4" generic="17" specific="1" roletype="5" devicetype="1536" nodetype="0" type="Multilevel Power Switch" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
<Manufacturer id="31e" name="Inovelli">
<Product type="1" id="1" name="LZW31-SN Dimmer Red Series" />
</Manufacturer>
<CommandClasses>
<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" mapping="38">
<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="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="2" innif="true">
<Instance index="1" />
<Value type="byte" genre="user" instance="1" index="0" label="Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="button" genre="user" instance="1" index="1" label="Bright" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="button" genre="user" instance="1" index="2" label="Dim" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="bool" genre="system" instance="1" index="3" label="Ignore Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
<Value type="byte" genre="system" instance="1" index="4" label="Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="system" instance="1" index="5" label="Dimming Duration" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="255" />
</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="75.076" />
<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="75.013" />
<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="26141" />
<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="0.0" />
<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="7680" />
<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="7680" />
<Value type="int" genre="user" instance="1" index="3" label="Config Button Scene" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="7680" />
</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="1536" />
<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="1536" />
</CommandClass>
<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="byte" genre="config" instance="1" index="1" label="Dimming Speed" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="3">
<Help>This changes the speed in which the attached light dims up or down. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. Range:0-100 Default: 3</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="2" label="Dimming Speed (From Switch)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="101" value="101">
<Help>This changes the speed in which the attached light dims up or down when controlled from the physical switch. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1. Range:0-101 Default: 101</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="3" label="Ramp Rate" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="101" value="101">
<Help>This changes the speed in which the attached light turns on or off. For example, when a user sends the switch a basicSet(value: 0xFF) or basicSet(value: 0x00), this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1. Range:0-101 Default: 101</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="4" label="Ramp Rate (From Switch)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="101" value="101">
<Help>This changes the speed in which the attached light turns on or off from the physical switch. For example, when a user presses the up or down button, this is the speed in which those actions take place. A setting of 0 should turn the light immediately on or off (almost like an on/off switch). Increasing the value should slow down the transition speed. A setting of 101 should keep this in sync with parameter 1. Range:0-101 Default: 101</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="5" label="Minimum Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="45" value="40">
<Help>The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level. Range:1-45 Default: 1</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="6" label="Maximum Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="55" max="99" value="99">
<Help>The maximum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99. Range:55-99 Default: 99</Help>
</Value>
<Value type="list" genre="config" instance="1" index="7" label="Invert Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="1" 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="Yes" value="1" />
<Item label="No" value="0" />
</Value>
<Value type="short" genre="config" instance="1" index="8" 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="9" label="Default Level (Local)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="100" value="0">
<Help>Default level for the dimmer when it is powered on from the local switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off. Range:1-100 Default: 0</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="10" label="Default Level (Z-Wave)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="100" value="0">
<Help>Default level for the dimmer when it is powered on from a Z-Wave command. A setting of 0 means that the switch will return to the level that it was on before it was turned off. Range:1-100 Default: 0</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="11" label="State After Power Restored" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="100">
<Help>The state the switch should return to once power is restored after power failure. 0 = off, 1-99 = level, 100=previous. Range:0-100 Default: 0</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="12" 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 & local 04 - z-wave hub 05 - z-wave hub & local 06 - z-wave hub & 3-way 07 - z-wave hub & local & 3way 08 - timer 09 - timer & local 10 - timer & 3-way 11 - timer & 3-way & local 12 - timer & z-wave hub 13 - timer & z-wave hub & local 14 - timer & z-wave hub & 3-way 15 - all Range: 0-15 Default: 15</Help>
</Value>
<Value type="short" genre="config" instance="1" index="13" 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="list" genre="config" instance="1" index="14" label="LED Strip Intensity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" vindex="5" size="1">
<Help>This is the intensity of the LED strip. Range: 0-10 Default: 5</Help>
<Item label="0%" value="0" />
<Item label="10%" value="1" />
<Item label="20%" value="2" />
<Item label="30%" value="3" />
<Item label="40%" value="4" />
<Item label="50%" value="5" />
<Item label="60%" value="6" />
<Item label="70%" value="7" />
<Item label="80%" value="8" />
<Item label="90%" value="9" />
<Item label="100%" value="10" />
</Value>
<Value type="list" genre="config" instance="1" index="15" label="LED Strip Intensity (When OFF)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" vindex="1" size="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: 1</Help>
<Item label="0%" value="0" />
<Item label="10%" value="1" />
<Item label="20%" value="2" />
<Item label="30%" value="3" />
<Item label="40%" value="4" />
<Item label="50%" value="5" />
<Item label="60%" value="6" />
<Item label="70%" value="7" />
<Item label="80%" value="8" />
<Item label="90%" value="9" />
<Item label="100%" value="10" />
</Value>
<Value type="int" genre="config" instance="1" index="16" label="LED Strip Effect" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="83823359" value="83822149">
<Help>Please see website for documentation. Range: 0-83823359 Default: 0</Help>
</Value>
<Value type="list" genre="config" instance="1" index="17" label="LED Strip Timeout" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="10" vindex="3" size="1">
<Help>When the LED strip is disabled (LED Strip Intensity is set to 0), this setting allows the LED strip to turn on temporarily while being adjusted. Range: 0-10 Default: 3</Help>
<Item label="Stay Off" value="0" />
<Item label="1 Second" value="1" />
<Item label="2 Seconds" value="2" />
<Item label="3 Seconds" value="3" />
<Item label="4 Seconds" value="4" />
<Item label="5 Seconds" value="5" />
<Item label="6 Seconds" value="6" />
<Item label="7 Seconds" value="7" />
<Item label="8 Seconds" value="8" />
<Item label="9 Seconds" value="9" />
<Item label="10 Seconds" value="10" />
</Value>
<Value type="byte" genre="config" instance="1" index="18" label="Active Power Reports" 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="19" 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 & energy reports being sent (in seconds). The timer is reset after each report is sent. Range:0-32767 Default: 3600</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="20" 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>
<Value type="list" genre="config" instance="1" index="21" label="AC Power Type" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="1" vindex="1" size="1">
<Help>Configure the switch to use a neutral wire. Range: 0-1 Default: 1</Help>
<Item label="Non Neutral" value="0" />
<Item label="Neutral" value="1" />
</Value>
<Value type="list" genre="config" instance="1" index="22" label="Switch Type" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="2" vindex="1" size="1">
<Help>Configure the type of 3-way switch connected to the dimmer. Range: 0-2 Default: 0</Help>
<Item label="Load Only" value="0" />
<Item label="3-way Toggle" value="1" />
<Item label="3-way Momentary" value="2" />
</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="4">
<Group index="1" max_associations="5" label="Lifeline" auto="true">
<Node id="1" />
</Group>
<Group index="2" max_associations="5" label="Basic_Set" auto="false" />
<Group index="3" max_associations="5" label="Switch_MultiLevel_Set" auto="false" />
<Group index="4" max_associations="5" label="Switch_MultiLevel_Start/Stop" 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.35" />
</CommandClass>
<CommandClass id="152" name="COMMAND_CLASS_SECURITY" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="bool" genre="system" instance="1" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
</CommandClass>
</CommandClasses>
</Node>
I’m sorry to be dense here - how do I shut off my Home Assistant application when I run it as HassOS on Pi? In the words, if I shut off Home Assistant, I can’t figure out how to access the files to change them. Do I Samba in to make these OZW changes? I’ve been running with the old config just fine (including a light entity), but not being able to figure this part out has always bothered me.
Edit: Z-wave network just needs to be stopped to edit files, below may be incorrect. HA restart may be needed before any changes to edited Z-wave files are picked up.
The terminology can be confusing. HA Add-ons do not shut down when Home Assistant itself is stopped (not shut down). I personally use the Samba add-on to access the files and edit my files with Notepad++, then SSH to bring Home Assistant back up.
So once Samba is all set up and you confirm you have access, you can go to Configuration > Server Controls > Server Management > Stop. Then you can edit OZW files without risking them being over-written before you can save.
Great! To clarify for anyone finding this in the future, did you erase all the lines for the problematic nodes, or just everything within that section, leaving the lines:
I erased everything associated with that node, so the entries didn’t even exist. I forgot that I have to go back in and re-add my “COMMAND_CLASS_CENTRAL_SCENE” lines to get my scenes working with relay disabled, but that’s an easy Z-wave network stop and restart per (Home Assistant - 2nd Gen Switch RGB working! - #10 by platup)