Anyone have Zigbee or Z-Wave USB adapters that is not already whitelisted for USB discovery in HA?
Back-story: Home Assistant developer bdraco recently added a new user-friendly feature for automatically discovering USB adapters for Home Assistant core integrated components like ZHA (for Zigbee) and Z-Wave JS integrations as now noted in their documentation.
https://www.home-assistant.io/blog/2021/09/01/release-20219/#usb-discovery
Zigbee USB adapter discovery:
https://www.home-assistant.io/integrations/zha/#discovery-via-usb-or-zeroconf
ZWave USB adapter discovery
https://www.home-assistant.io/integrations/zwave_js/#discovery-via-usb
These integrations in turn rely on the USB Discovery integration which watches host for USB devices:
https://www.home-assistant.io/integrations/usb/
This new feature means that if a user plug-in a USB adapter with a whitelisted identifier it will be auto-detected by Home Assistant OS and notify users that new devices have been discovered, however, for that to work automagically we first need a list of some identifying information about compatible USB devices added to the whitelist in each integration component.
I think it would be much appreciated by new users if existing users in the HA community that already has a working ZHA compatible Zigbee USB adapter that is presented with a unique description could give feedback here on its IDs and description so that it can hopefully be auto-detected with a âfriendly nameâ in the future.
What is currently needed to automatically detect a Zigbee USB adapter is its âProduct Description Stringâ (a.k.a. device descriptor/descriptors) in combination with its âVendor IDâ (a.k.a. vid hex) and âProduct IDâ (a.k.a. pid hex).
Once we know a device descriptor, vid and pid we can attempt to get those whitelist those in Home Assistant core and its ZHA or Z-Wave JS integration components.
Using this detection method it is only possible to detect USB adapter that are configured with a such unique custom, which is only possible to configure on Zigbee USB adapters that uses USB-to-UART converter chip with a writable EEPROM (like WCH CH340B, FTDI FT231 series, or Silicon Labs CP210x series).
This means that if the manufacturer of your USB adapter has been cheap and used a USB-to-Serial bridge chip without a configurable EEPROM or missed configuring a custom âProduct Description Stringâ then Home Assistant OS can probably not auto-detect it as a unique device.
Note that if you as a customer would ask manufacturers to add this as a feature for new USB devices it should be noted a manufacturer only need to configure the âProduct Description Stringâ, and device manufacturers should not need to change the original VID or PID (as doing so would require providing custom drivers for the operating system).
https://github.com/home-assistant/core/blob/dev/homeassistant/components/zha/manifest.json
"usb": [
{"vid":"10C4","pid":"EA60","description":"*2652*","known_devices":["slae.sh cc2652rb stick"]},
{"vid":"10C4","pid":"EA60","description":"*tubeszb*","known_devices":["TubesZB Coordinator"]},
{"vid":"1A86","pid":"7523","description":"*tubeszb*","known_devices":["TubesZB Coordinator"]},
{"vid":"1A86","pid":"7523","description":"*zigstar*","known_devices":["ZigStar Coordinators"]},
{"vid":"1CF1","pid":"0030","description":"*conbee*","known_devices":["Conbee II"]},
{"vid":"10C4","pid":"8A2A","description":"*zigbee*","known_devices":["Nortek HUSBZB-1"]},
{"vid":"10C4","pid":"8B34","description":"*bv 2010/10*","known_devices":["Bitron Video AV2010/10"]}
],
https://github.com/home-assistant/core/blob/dev/homeassistant/components/zwave_js/manifest.json
"usb": [
{"vid":"0658","pid":"0200","known_devices":["Aeotec Z-Stick Gen5+", "Z-WaveMe UZB"]},
{"vid":"10C4","pid":"8A2A","description":"*z-wave*","known_devices":["Nortek HUSBZB-1"]},
{"vid":"10C4","pid":"EA60","known_devices":["Aeotec Z-Stick 7", "Silicon Labs UZB-7", "Zooz ZST10 700"]}
]
https://github.com/home-assistant/core/blob/dev/homeassistant/generated/usb.py
# match https://github.com/home-assistant/core/blob/dev/homeassistant/components/zha/manifest.json and https://github.com/home-assistant/core/blob/dev/homeassistant/components/zwave_js/manifest.json
PS: For developer details se PR(s) #/54904, #54935, #54986, #56201, and #56719