ZHA Failed to probe the usb device

I’ve been told by many people how easy it is to set up the SONOFF ZBDongle-E with ZHA. Well, it certainly isn’t for me.

I’m running Home Assistant temporarily on Ubuntu on WSL 2 to try out a few different things before committing to any specific setup. It runs smooth, but I only have Zigbee devices, so I won’t get very far without a Zigbee coordinator.

The dongle is connected with Ubuntu just fine it seems:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 010: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

It even shows up in Home Assistant:
image

But when I click “configure”, well it shows " Failed to probe the usb device". That’s it, that’s the whole message. The message is shown immediately, it doesn’t even seem to try to do anything at all.

Any guide I’ve been able to find on the topic doesn’t involve any configuration files, yet every “solution” for similar problems involves editing XML files for tools that I’m not even aware I should be using.

What I have tried is flashing the latest coordinator firmware to the dongle, it didn’t change anything.

I’m wondering, is this a WSL problem? Will it just simply work on HAOS? Or is the dongle broken? Is there any way to find out if the dongle is broken?

I’ll have to wait another 6 months or so before I receive my board for HAOS, so that’s not going to be an option any time soon. But it would be nice to have everything figured out before then.

Any help would be appreciated.

The supported ways to run on Ubuntu are home assistant container in docker, or a VM. Either way, additional settings are needed to pass the usb stick through to the docker container or VM when using ZHA.

How did you install Home Assistant in Ubuntu?

I just installed Home Assistant Core through pip. It was only supposed to be a test of a few Zigbee appliances in combination with Home Assist. I already had WSL, seemed like the shortest path.

I was assuming that the fact it popped up in Home Assist meant that the dongle was properly passed through though.

I don’t know much about a core instalation- I use Home Assistant container in docker on Ubuntu.

I would double check you installed all the required dependencies and set up the python virtual environment properly. If you just installed it with pip without the other steps and dependencies I dont think it will work right.

Hmmm I checked but I didn’t really skip any step in that guide. I’m mostly curious right now if there is any other way to ensure that the dongle itself is even functioning as it should…

I use Home Assistant OS because it just works so can’t really help either but a tip is to read and follow ZHA documentation troubleshooting section about connecting USB device to docker by installing Docker-Compose and configuring it to include the USB device with as you will need to somehow get the passthrough of the USB device working to Home Assistant core from inside the container:

https://www.home-assistant.io/integrations/zha#cant-connect-to-usb-device-and-using-docker

https://www.home-assistant.io/integrations/zha#docker-compose

Also already need to have a functional install of Udev device manager working on your Linux system.

Other than that do search for “usb AND docker AND home assistant” or “usb AND docker AND ubuntu”.

Anyway, USB Discovery feature was really designed to work with Home Assistant Operating System and not when only running Home Assistant core on your own in a Docker without Home Assistant OS.

I’ve used ZHA in a docker container install without Home Assistant OS, so can confirm it at least would work for that type of install. You just have to make sure you map the USB with the “devices” flag, by adding something like this to the docker compose:

      devices:
        - /dev/ttyUSB0:/dev/ttyUSB0

The documentation was updated to also use the “privileged” flag when installing home assistant container, which should also access the USB and basically any other hardware running on the host- I’m not a fan of giving a container the privileged flag when not absolutely necessary though.

The nice thing about docker is it sets up the exact environment Home Assistant needs automatically, with all the required dependencies running the correct version in the container. With the core install, you need to make sure all the correct dependencies and python packages are configured, with the proper version, yourself. A lot can go wrong, especially once you try to add hardware mapping to the mix. I really don’t know how you would begin to troubleshoot that.

Another option could be to install zigbee2mqtt instead of ZHA. There are a lot of different ways to install Zigbee2mqtt - ie directly on linux, docker, python venv, etc. See link here - Installation | Zigbee2MQTT For zigbee I run zigbee2mqtt in docker separate from Home Assistant, and it links to Home Assistant through MQTT. I have MQTT running on the “bare metal” of the ubuntu machine.

I tried installing zigbee2mqtt, also in venv. It quickly pointed out that it simply did not have permission to access /dev/ttyACM0. A quick ls indeed confirmed that only root:root had access. I’m not sure what is customary or proper in this case, but I just chmodded it in to submission. It now works in both ZHA and zigbee2mqtt. Thank you all for your insights 🥲