Also have Zigbee or Z-Wave USB dongles that are not whitelisted for automatic USB discovery in HA?
Please help this whole community and companies making USB adapters to get their USB devices on the whitelist for each integration in order to be automatically discovered and correctly identified.
https://www.home-assistant.io/blog/2021/09/01/release-20219/#usb-discovery
Back-story: Home Assistant developer and Nabu Casa employee Nick Koston (a.k.a. bdraco) recently added a new user-friendly feature for automatically discovering USB devices to Home Assistant core to enable plug-and-play USB adapter identification for integrated components like ZHA integration (for Zigbee) and the Z-Wave JS integration as now noted in their documentation.
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 via a prompt in the user interface that new devices have been discovered and identified as being supported by an integration, however, for that to work automagically we first need to pre-populate lists for each integration with some identifying information about compatible USB devices added to the whitelist in each integration component, and that is where some manual work comes in.
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