If you have SSH access you can update the files in the python_openzwave ozw_config directory. The path on my server is /srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/. You will likely have to exclude and then re-include your device in order for it to pick up the new configuration. If you are able to do that and everything works as you expect I would recommend you submit a pull request to the openzwave project, more information can be found here https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices.
Little bit of a frustrated rant, but also a legit need. I respect the HA devs ported their own fork of OpenZwave. But I have some devices that have been in the OpenZwave config for over TWO YEARS are still not part of the HA zwave default database. Having to exclude the devices, hack n slash some xml files and then re include them can’t be seen as a quality experience by the HA devs can it? Based on my time in the HA community, I just get the feeling no one really uses Zwave to the extent I do since I keep popping into zwave issue after zwave issue that exist in HA but not in OpenHab or Domoticz. oh well! If anyone has a good (detailed) tutorial on how to import manufacturer XML configs from openzwave into Hass.io it would be appreciated! I have even tried adding
but Home assistant seems to give two censored about it because, well why not! Even though the OWZ logs confirm it is now using the open-zwave config directory, it still is not pulling in the right manufacturer database or xml files. Oh well, time to just rebuild for the 4th time, because, ya know, everyone loves building but no one loves using (sorry for the rant, still ingesting coffee)
I can understand the frustration, it would be nice if there was a better way to keep the device configuration more current. I’m just a casual user of HA myself so I can’t speak for the developers but it is my understanding the openzwave fork had something to do with openzwave taking too long to implement the “Barrier” command class. Here is what I have been doing to try to keep the config up to date with openzwave.
Clone the openzwave repository (I checked it out in /home/homeassistant/git on my machine) git clone https://github.com/OpenZWave/open-zwave.git
Copy the config directory out without the “.git” directories sudo rsync -a --exclude='.git/' git/open-zwave/config/ open-zwave-master/config/
Copy from the new config directory to the ozw_config directory in the python lib directory and make sure it has the correct owner/group sudo rsync -avh open-zwave-master/config/ /srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/ sudo chown -R homeassistant:homeassistant /srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/
When openzwave updates the config directory you can update it on your machine by pulling the changes and re-running the last three commands (I have them in a bash script, I probably should set up cron to keep it up to date) cd git/open-zwave && git pull
I have been running home-assistant using hassbian on a raspberry pi, I’m not sure how different hass.io is (truth be told I don’t know much about hass.io). I know its not the prettiest solution but hopefully it helps. The beauty of open source is you are free to contribute if you come up with a better way.
Then you can use git to setup the config directory:
mkdir /config/z-wave
cd /config/z-wave
git clone --depth=1 https://github.com/OpenZWave/open-zwave.git
You can skip the rsync if you use your own config_path.
If you’re using Hassio then the default config files live inside the container. Every time you upgrade Hassio you will lose any config file updates because the docker image contains the installed files, which are almost always older. So for Hassio I would recommend you store the config files in the persistent data volume anyways. If the devs ever fix the pyozw fork, then you can go back to using the zwave.update_config service instead of using git, along with the custom path.
When I copied over the files, I lost all my existing configs. How can I tell which file is my current config? I assume then I can just drop in ‘/config/z-wave/open-zwave/config’
What are you trying to do exactly? If you have config_path in your configuration.yaml file, then that’s the path it is using. If you go through my message history you can find a python command to display the autodetect path.
You should be wary of topics that are 7 months old, this information in this topic is outdated now. If you want to use config files from OpenZWave you need to use the 1.4 branch. Currently there are only a handful of devices that exist in OpenZWave 1.4 but are missing from HA. So using config path is unnecessary unless you need to make manual changes, or have one of those missing devices.
So for Hassio I would recommend you store the config files in the persistent data volume anyways.
… I’m using Hassio with docker but I’m using the native ZWave config panel (not the OZWCP) and I think I’m missing some functionality from some of my zwave devices. From what I can tell I might be able to fix this by using an updated version of OpenZwave by doing the following:
Ah ok, so download the 1.4 HASS fork which will be newer than whatever comes pre-configured in the Hassio install? If absolutely necessary I might want to cherry pick some xml files or even individual lines of code from somewhere deep in the 1.6 files for a specific device.
The latest version of HA already comes with the most up-to-date config files. The HASS fork includes all of the OZW 1.4 files plus a few extras. There is no need to download unless you want to modify them.
So the HASS fork is newer than the version included in the HA install? Or it’s the same and I should only bother downloading if I want to modify it with items included in OZW 1.5 or 1.6?
No, the HA fork is not newer than what’s installed with HA 0.103, it ships with the latest set of files in the fork (at the time this comment was written), specifically it’s these files. When in doubt, you can locate the files within your HA install to verify.
To be clear:
The HA fork of OZW is based on OZW 1.4. It has all of the same config files as upstream OZW 1.4, plus some extras that are not in upstream 1.4.
When you install HA, it includes a snapshot of the config files in the HA OZW fork.
OZW 1.6 is newer and has more config files, but they are incompatible (in general) with 1.4.
If the HA fork does not have a config file for your device, then in that case you’d want to look at OZW 1.6 (master branch) and see if it exists. If it does, you may need to do some work to backport it to 1.4.
In any case, when you want to setup a custom config path in HA, it’s just better to base it off of the HA fork so that you’re including those additional files that have been added.
I’ve downloaded the V1.4 files from the HASS fork; added
zwave:
config_path: /config/openzwave_config
Removed the node, rebooted hass.io, re-added the node, rebooted again and still do not have the additional configuration parameters foe my device?? ( FYI - Checked they were in the xml files!)
I’ve read through; but is there a line in the OZW log that shows which folder it is using? I couldn’t see it!
What version of HA are you using? If you are running HA 0.107 then the config files are the same as what you would have downloaded from the HASS fork, so there would be no difference.
Im 107.07; and the device I’m using ( Fakro ZWS12) is 3 yr old! But in xml has configuration parameters that I want; but can’t access? I figured trying the code myself would help…
There are no config parameters under the Node; and below is the node info from my zwave.cfg file… as you can see no configuration parameters. But the Manufacturer, and ID’s match?!!
The configuration parameters in that file are all commented out, thus there are no config parameters as far as OZW and HA are concerned.
The parameters were commented out in this commit, with the message “Configuration parameters are not yet implemented in this version”. Since you have your own config files downloaded, you can delete the comment markers <!-- (line 5) and --> (line 57) and give it a try.
But you also don’t need the XML file to set config parameters, just use the zwave.set_config_parameterservice call with the params and values you want.
The zwave product db lists two versions of the ZWS12. The older one that you have does not list any config parameters in the DB. It’s not always accurate of course, but just be aware, it could be your version does not implement it as the OZW commit says. The newer one that supports zwave plus (and has different product ID and type) has some config params defined, but it doesn’t match 100% with the config file.
Ah mate; thank you VERY much. Ive been deliberating over that for days…
I tried the service call but it don’t work… I presumed it was because it wasn’t defined in the xml file. However; now I;ve looked and your right… I have the older non z-wave plus.