Zw139 Aeotec

Guys I have added to my z-wave setup an Aeotec Switch zw139 and I am getting unknown attributes…

Any help will be really appraciated.

This happens when your config_path isn’t set correctly.

Can you please be more specific? I have not changed anything regarding the zwave path.

What OS are you running? Do you have any openzwave packages installed?

This is my environment
System Health

arch armv7l
dev false
docker false
hassio false
os_name Linux
python_version 3.6.5
timezone Europe/Nicosia
version 0.95.4
virtualenv true

Lovelace

mode auto-gen.

No special configuration for zwave in my configuration.yaml only this
zwave:
usb_path: /dev/zwave

Are you using Debian? Make sure you don’t have any zwave packages installed. If you run this command, you should see nothing installed.

dietpi@hasspi:~$ apt list --installed *zwave*
Listing... Done
dietpi@hasspi:~$

If you have any of these installed, you should remove them.

dietpi@hasspi:~$ apt list *zwave*
Listing... Done
libopenzwave-doc/testing 1.5+ds-6 all
libopenzwave1.5-dev/testing 1.5+ds-6 armhf
libopenzwave1.5/testing 1.5+ds-6 armhf
openzwave/testing 1.5+ds-6 armhf

I have these installed, should I remove them?

root@raspberrypi:/home/pi/scripts# apt list zwave
Listing… Done
libopenzwave-doc/stable 1.5+ds-4 all
libopenzwave1.5/stable,now 1.5+ds-4 armhf [installed,automatic]
libopenzwave1.5-dev/stable,now 1.5+ds-4 armhf [installed]
openzwave/stable 1.5+ds-4 armhf

Yes remove those, those are old and the wrong version. With those installed, the config path will not use the one that is installed by HA, which is newer. HA does not need those.

After I remove them I should only restart HA or should I delete anything else?

You can restart HA, that will reconfigure the config_path to use the HA installed path. If the device still shows up as unknown, you’ll either need to a) click on the “REFRESH NODE” button in the Z-Wave Node Management section of the Z-Wave control panel, or b) exclude the device and re-include it.

I have restarted HA. Device still unknown. I have refreshed the device but still the same.

When I do a locate I found this
root@raspberrypi:/etc# locate manufacture
/etc/openzwave/manufacturer_specific.xml
/etc/openzwave/manufacturer_specific.xsd
/home/pi/scripts/monitor/.manufacturer_cache
/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/zha/core/channels/pycache/manufacturerspecific.cpython-36.pyc
/srv/homeassistant/lib/python3.6/site-packages/homeassistant/components/zha/core/channels/manufacturerspecific.py
/srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/config/manufacturer_specific.xml
/srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/config/manufacturer_specific.xsd
/srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/manufacturer_specific.xml
/srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/manufacturer_specific.xsd

Is the etc folder still valid?

Did you remove the packages? If so, try purging them. If the /etc/openzwave files still exist, that’s where the problem is.

$ sudo apt-get purge libopenzwave1.5 libopenzwave1.5-dev

Now the openzwave version is OpenZwave Version 1.4.3440 Starting Up
Is this correct?

That’s the version mine is, but that shouldn’t have changed anyways. HA would have just been using the device config files in /etc/openzwave, but still using the library provided by python.

After the purge the etc folder is removed.
Is the manufacturer_specific.xml somewhere cached? Because after restart still unknown?

Set the config_path to /srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config/ in your configuration.yaml this will fix it.

Once the folder is removed, HA will find the config path in the site packages directory that was installed already. You don’t need to set anything, just restart.

You’ll also need to go through the procedure I mentioned previously, a) click on the “REFRESH NODE” button in the Z-Wave Node Management section of the Z-Wave control panel, or b) exclude the device and re-include it.

… or he could just add the 1 line to his config and resolve it.

Why worry about “auto detect” when they just want it to work?