Where are the ZWAVE manufacturer and device files in Hassio?

Hi, greetings from Canada! Hope someone knows this: I’m looking for a way in Hassio to add a couple of custom XML description files for ZWave devices that are not currently in the OpenZWave database. This was a very simple task in Hassbian, as I just located the “ozw_config” directory, edited the “manufacturer_specific.xml” to add new nodes for the devices, then added the device files under the manufacturer directory… but I have not been able to locate where the “python_openzwave” folder is in Hassio. Anyone here can point me in the right direction?

1 Like

hey Guys

Looking for the same configuration possibilities , anybody would know how or suggest a way ?

thanks

What I did was to edit the zwcfg…xml file in your config folder after the devices have been added. I was able to edit it to add the missing parameters from the manufacturers xml file.

Thanks for the quick reply @dap35 , could you give us an example ? i think it would help out :slight_smile:

I have several GE 14288 outlets, where I could not turn off the night light completely. I don’t have a before copy of my zwcfg file (located in the /config share of hass.io, but what I did is to pull an updated copy of the manufacturer_specific.xml from the openzwave git repository along with the detailed xml file for that device.

So in the clip below, you see the entry in my zwcfg file for node id 20, which is the offending device. From here, I pull the Product type=“4952” id=“3133” and then look that up in the newer manufacturer specific xml file. This points to the detailed file receptacle.xml.

I compared this data to my zwcfg file, and updated the name , which originally showed UNKNOWN.

The receptacle.xml file shows the affected command class (112). I updated the zwcfg file for command class id=112 to match this.

Save the file and restart HA.

zwcfg file for node 20:

<Node id="20" name="" location="" basic="4" generic="16" specific="1" roletype="5" devicetype="1792" 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="63" name="GE">
			<Product type="4952" id="3133" name="14288 Duplex Receptacle" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" mapping="37">
				<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="False" />
			</CommandClass>
			<CommandClass id="39" name="COMMAND_CLASS_SWITCH_ALL" version="1" request_flags="4" innif="true">
				<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="3" 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="43" name="COMMAND_CLASS_SCENE_ACTIVATION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="86" name="COMMAND_CLASS_CRC_16_ENCAP" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="94" name="COMMAND_CLASS_ZWAVE_PLUS_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="1792" />
				<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="1792" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="3" label="LED Light" max="2" size="1" value="0">
					<Help>Sets when the LED on the outlet is lit.</Help>
                            <Item label="LED on when outlet off" value="0" />
			                <Item label="LED on when outlet on" value="1" />
			                <Item label="LED always off" value="2" />

Excerpt from manufacturer specific xml file for GE devices…

<Manufacturer id="0063" name="GE">
		<Product type="4450" id="3030" name="45602 Lamp Dimmer Module" config="ge/dimmer_module.xml"/>
		<Product type="4457" id="3230" name="45606 2-Way Dimmer Switch" config="ge/dimmer.xml"/>
		<Product type="4944" id="3031" name="12724 3-Way Dimmer Switch" config="ge/12724-dimmer.xml"/>
		<Product type="4944" id="3033" name="12729 3-Way Dimmer Switch" config="ge/12724-dimmer.xml"/>
		<Product type="4944" id="3034" name="12730 Fan Control Switch" config="ge/12724-dimmer.xml"/>
		<Product type="4944" id="3131" name="14287 Fan Control Switch" config="ge/12724-dimmer.xml"/>
		<Product type="4952" id="3134" name="14288 In-Wall Tamper Resistant Smart Outlet" config="ge/14288-outlet.xml"/>
		<Product type="4944" id="3038" name="14294 In-Wall Smart Dimmer" config="ge/14294-dimmer.xml"/>
		<Product type="4944" id="3130" name="14295 In-Wall Smart Toggle Dimmer" config="ge/14295-dimmer-toggle.xml"/>
		<Product type="494d" id="3032" name="26931 Smart Motion Switch" config="ge/26931-motion-switch.xml"/>
		<Product type="494d" id="3034" name="26933 Smart Motion Dimmer" config="ge/26933-motion-dimmer.xml"/>
		<Product type="4952" id="3036" name="14291 In-Wall Smart Switch" config="ge/14291-switch.xml"/>
		<Product type="4952" id="3037" name="14292 In-Wall Smart Toggle Switch" config="ge/14292-toggle-switch.xml"/>
		<Product type="4952" id="3038" name="14293 In-Wall Smart Toggle Switch" config="ge/14292-toggle-switch.xml"/>
		<Product type="5250" id="3030" name="45603 Plugin Appliance Module"/>
		<Product type="5250" id="3130" name="45604 Outdoor Module"/>
		<Product type="4f50" id="3031" name="12720 Outdoor Smart Switch"/>
		<Product type="5252" id="3530" name="45605 Duplex Receptacle" config="ge/receptacle.xml"/>**
	<Product type="4952" id="3133" name="14288 Duplex Receptacle"config="ge/receptacle.xml"/>
		<Product type="5257" id="3533" name="45609 On/Off Relay Switch" config="ge/relay.xml"/>
		<Product type="4457" id="3033" name="45613 3-Way Dimmer Switch" config="ge/dimmer.xml"/>
		<Product type="4952" id="3031" name="12721 Lighting Control Duplex Receptacle" config="ge/receptacle.xml"/>
		<Product type="4952" id="3032" name="12722 On/Off Relay Switch" config="ge/relay.xml"/>
		<Product type="4952" id="3033" name="12727 In-Wall Smart Switch (Toggle)"/>
		<Product type="4953" id="3032" name="32563 Hinge Pin Smart Door Sensor" config="ge/hinge-pin.xml"/>
		<Product type="5052" id="3031" name="12719 Plug-in Smart Switch" config="ge/12719-plugin-switch.xml"/>
		<Product type="5052" id="3033" name="14282 Plug-In Two-Outlet Smart Switch" config="ge/14282-plugin-switch.xml"/>
		<Product type="6363" id="3533" name="ZW4001 In-Wall Decora Style On/Off Relay Switch" config="ge/zw4001-switch.xml"/>
		<Product type="4c42" id="3031" name="ZW7101 Smart LED Light Bulb ZE26I" config="ge/ze26i.xml"/>
		<Product type="4953" id="3133" name="ZW6302 Portable Smart Motion Sensor" config="ge/zw6302.xml"/>
		<Product type="4953" id="3134" name="ZW6302 Portable Smart Motion Sensor" config="ge/zw6302.xml"/>
	</Manufacturer>

Receptacle.xml file for my outlet

<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='https://github.com/OpenZWave/open-zwave' Revision="2">
	<!-- Configuration Parameters -->
	<CommandClass id="112">
		<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" size="1" value="0">
			<Help>Sets when the LED on the outlet is lit.</Help>
			<Item label="LED on when outlet off" value="0" />
			<Item label="LED on when outlet on" value="1" />
			<Item label="LED always off" value="2" />
		</Value>
	</CommandClass>
</Product>
1 Like

Thanks , will be helpfull.

I’ll try to see if i can replicate when i get home tonight

I first booted into an old instance of HASS (not hassio) where I could replace the zwave files. I found that it didn’t take care of any zwave devices that had already been added. That is why I went to just modifying the zwcfg file. After verifying that it worked on one device, I booted back to my normal hassio and updated the rest of the entries.

thanks @dap35 it worked as you said

Juste updated the id:112 from the corresponding zooz file and changed the name / id to the proper one and it worked :slight_smile:

Thanks a bunch !

PS: one thing though , as the zwcfg_ xxxxxxx.xml file is saved when you stop Hassio, you have to stop it, change the file , start hassio and voila the changes will be in and options available. If you dont do this order, your changes are always overwritten when you restart :slight_smile:

Again thanks a bunch , those blue lights are finally off at night :stuck_out_tongue:

1 Like

I’m looking to do the same for

<Product type="4952" id="3032" name="12722 On/Off Relay Switch" config="ge/relay.xml"/>

Where can I find the

	<CommandClass id="112">

for that. Seems like an easy fix, but not sure where I get the updated code. I know it should have an always off option, it did in Smartthings

If you have the samba add-on installed, the zwcfg…xml file will be in the /config folder, which is also where the rest of your HA config files are at.
As someone pointed out, you do need to stop HA before editing the zwcfg file. You need to find each of the offending zwave devices in your file, and make the same edit.

I know where the xml file is, I do not know where the proper info is for class is 122 which is where the led night light settings is for the 12722 switch

Actually, probably not the best, but as a test I just added this manually to the config for one my my switches

				    <Item label="Always Off" value="2" />

Got the number from here
http://www.ezzwave.com/advanced-operation/

It worked. Might just add that to the other 8 or so switches with the same issue.

Sorry, I was a bit jet-lagged.

I looked up the values on the github for openzwave :==> https://github.com/OpenZWave/open-zwave/tree/master/config

I don’t have the before copy of my zwcfg file, just the after, which I included above.

This is what I added for each outlet :

 <CommandClass id="112">
	<Value type="list" index="3" genre="config" label="LED Light" min="0" max="2" size="1" value="0">
		<Help>Sets when the LED on the outlet is lit.</Help>
		<Item label="LED on when outlet off" value="0" />
		<Item label="LED on when outlet on" value="1" />
		<Item label="LED always off" value="2" />
	</Value>
</CommandClass>

Sorry I didn’t really write clear enough

I was looking for 12722 On/Off Relay Switch

But overall the same issue

If you look at the manufacture_specific.xml file on the github page above, you will see this line:

This points you to the relay.xml file in the “ge” folder.

<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='http://code.google.com/p/open-zwave/'>
	<!-- Configuration Parameters -->
	<CommandClass id="112">
		<Value type="list" index="3" genre="config" label="Night Light" size="1" value="0">
			<Help>In night-light mode the LED on the switch will turn ON when the switch is turned OFF.</Help>
			<Item label="No" value="0" />
			<Item label="Yes" value="1" />
		</Value>
		<Value type="list" index="4" genre="config" label="Invert Switch" size="1" value="0">
			<Help>Change the top of the switch to OFF and the bottom of the switch to ON. Note: If you invert the switches and also install the product upside down, remember the load will now be controlled by the right, not the left switch.</Help>
			<Item label="No" value="0" />
			<Item label="Yes" value="1" />
		</Value>
	</CommandClass>
</Product>

Maybe it will help someone in the future… I have been looking for this solution for a year and I got a hint today from @Scope666 in a Github topic.

The open zwave folders thus ozw_config and manufacturer_specific.xml files and many other folders are not accessible if you have installed Home Assistant by Hass.io SD card image.

The only way to access these files as far as I know is to install Portainer addon from the Addon Store among Community Hass.io Add-ons. Before you start the addon disable the Protection mode switch.

Now you can open Portainer Web UI interface. Go to the Settings and scroll down to the Hidden Containers list. Remove the container from the list which has homeassistant as value.

Go back to Portainer’s dashboard and look for Containers, select the homeassistant container to get the Container details view. In the bottom of Container status block you can find the >_ Console.

Enter root as username and Connect and there you have the Linux terminal with the Home Assistant’s config directory. But at this time you are free to escape :slight_smile:

I found the openzwave under /usr/local/lib/python3.7/site-packages/python_openzwave.

If it would change in the future you may look for it by going one step up to the root by entering 'cd ..' and then you can look for the folder with the command:
find / -type d -iname 'python_openzwave'

The nano text editor is not available in Hass.io so you can’t edit the file there but you may copy it with scp to your machine and once you are ready, vica versa.

Under macOS I used:
scp manufacturer_specific.xml [email protected]:/Users/myusername/desktop/

Further info on secure copy and how you can copy the file from your machine to Hass.io:
How to copy file remotely via SSH

7 Likes

This is really good information and worked for me. I don’t know why it’s so hard to get to the underlying system with the Pi image, especially when OpenZWave config is often borked and needs changes.