Solved: Fixing "Unknown type" devices

I just installed the most recent version of Hassbian (2017-09-13), HASS 0.54. Z-wave installed automatically and I am able to control all devices. However, several device show with “Unknown type”.

I add the correct information for each device in:

/srv/homeassistant/lib/python3.5/site-packages/python_openzwave/ozw_config/manufacturer_specific.xml

For example:

<Manufacturer id="001d" name="Leviton">
      <Product type="1706" id="0334" name="VRPD3-1LW Plug-In Dimming Lamp Module"/>
</Manufacturer>

I then deleted the zwcfg_xxxxxx.xml file in /home/homeassistant/.homeassistant and restarted HASS (and tried rebooting entire system.)

The devices are still not found, despite the updated manufacturer_specific.xml. For example, the above lamp module still shows up as “light.leviton_unknown_type1706_id0334_level” and the newly generated zwcfg_xxxx.xml has:

<Manufacturer id="1d" name="Leviton">
      <Product type="1706" id="334" name="Unknown: type=1706, id=0334" />
 </Manufacturer>

How do I get openzwave to use the updated manufacturer_specific.xml to find device info? Or is there a new way that I am not getting?

Maybe your manufacturer id is the problem?
In one entry it’s 001d, in the other one 1d ?

Solved.

I would swear that I had saved the manufacturer_specific.xml file after editing it and then checked it. But…opened it up and none of my edits were there. So this is most likely user error (though I would prefer to blame something else.)

I made sure the new file was saved, rebooted, and everything is now showing up.

@gdselzer I just wanted to tell you I ran across your thread here while I’ve been trying to figure out why all my Leviton devices are showing up as “unknown”. I think I’ve found a bug (which it looks like you also experienced) where Leviton’s manufacturer ID is getting the leading zeros stripped off of it, so by the time it gets written to the Z-Wave config file it’s just “1d” instead of the proper “001d”.

I’ve filed an issue here in GitHub, but I’m wondering precisely how you went about going around this. I tried editing the incorrect entries in my Z-wave cfg xml file, so instead of:

<Manufacturer id="1d" name="Leviton">

They read:

<Manufacturer id="001d" name="Leviton">

However, they ultimately get overwritten and I still don’t have any config options for my Leviton devices in the Z-Wave control panel. How exactly did you get yours to work? Were you actually changing the Open Z-Wave database file to identify Leviton as “1d” instead of “001d”?

In my experience, the “001d” vs “1d” is not important.

To get your devices to show up correctly, you need to go through the following steps. I will hit on them at a high level. If you need specific details on how to complete any step, let me know and I’ll follow up with what I can.

  1. Add the devices to the manufacturer_specific.xml file. This file is part of the openZwave package. The openZwave community does their best to update it with new devices but the updates don’t always find their way into our HA systems. The instructions for adding devices to this file can be found at https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices

  2. Stop HA.

  3. Delete the zwcfgXXX.xml file.

  4. Restart HA.

When HA is started without a zwcfg file, it will match the devices found to the manufacturer_specific.xml file to reconstruct the zwcfg file. Devices should now show up correctly.

Hope that helps.

1 Like

Thanks…I felt sure that manufacturer ID difference was important! At any rate, my devices are already in the manufacturer_specific.xml file from Open Z-Wave, and have been in their master branch for seven months. However since I’m on Hass.io, so I can’t actually look at the OZW files my install is using to confirm it.

I’ve never used HASS.io and know little about it. I find it surprising that there is no way to view/edit the OZW files. Maybe someone else with HASS.io knowledge can jump in and provide some help on how to find and edit the correct files.

@rogersmj Also in the same boat. I could not figure out how to do this in HASS.io. Any help would be much appreciated.

This appears to be my exact problem with my Leviton switch and my Zooz switch, but I’m running HA in a Docker Container on a Synology NAS, so how do I find the path to the manufacturer xml files. Can anyone here help me with that?

I have now figured out how to edit the manufacturers_specific.xml and add the custom config files for my two dimmer switches, but in HA they still do not show up as entities that I can use to turn on/off the switches or control the brightness. The names are no longer unknown, so I believe it is using the config files and my settings.

However although the devices show now there is no switch.* entity that I can use in HA to turn on and off or control brightness… would appreciate any assistance if possible.

not sure if anyone resolve this. I had the same problem with zooz zen15 ID that was wrong on manufacturer_specific.xml file and I’m on HASSIO. looks like you need to get on ssh debug session to get access to the file. instruction found here;

https://developers.home-assistant.io/docs/en/hassio_debugging.html

There where couple of locations with manufacture_specific.xml found under (did a grep for it)

  1. a few under different /mnt/data/docker/aufs/… subfolder
  2. a few under different /var/lib/docker/aufs/… subfolder
  3. a few under different /var/volatile/lib/docker/aufs/… subfolder

since i’m not sure which is one is used, I change them all. But for some reason, after I delete zwcfgxxx.xml file, start ha, nothing has changed. device still unknown.

I just found this thread…
I’m running HA in a Docker container using the official image.
Since many months I have this problem, that newly added zwave devices are only recognized as “unknown id” / “unknown type” by HA.
This started happening to me with a specific HA release (I’d need to look up the exact version, but I think it was in the 0.20s…), but nobody beside me seems to have this issue.

I tried @gdselzer’s tip to delete the zwcfg_xxx.xml file, but this only caused the devices that were recognized correctly before now to show up das unknown as well.
So to me this looks like the manufacturer_specific.xml file inside the docker container is not found or processed as expected.

Is there any way to debug this?

Sebastian

To answer myself:
Since basically the beginning, I had

zwave:
  config_path: /usr/src/app/build/python-openzwave/openzwave/config/

in my configuration.yaml.
Turns out, that this apparently is the wrong directory, as it doesn’t exist anymore in a “normal” container.
I was mapping my zwcfg.xsd and options.xml files to this directory, so it is created when the container is started - but it’s otherwise empty.

To verify, I just downloaded an old 0.30 docker image and the path was correct then - seems it was changed with the switch from python 3.5 to python 3.6 and I missed that at the time.

The correct directory today would be /usr/local/lib/python3.6/site-packages/python_openzwave/ozw_config/, which seems to be the default when leaving out the config_path parameter entirely.

Man, that took a while to figure out… #-/

Sebastian

Just wanted to note that I’ve been having this issue using a virtualenv based homeassistant install on my rpi3.

Most zwave devices showed up as unknown. Basic functionality was all I was really looking for until I started trying to use the scene and colored led lights on a HS-WD200 light switch.

The “default path” is also not correct when installed in a virtualenv. My virtualenv was created in “/home/ha/hass-ve”

zwave:
  usb_path: /dev/zwave
  network_key: !secret zwave_network_key
  config_path: /home/ha/hass-ve/lib/python3.5/site-packages/python_openzwave/ozw_config/
3 Likes