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.

2 Likes

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.

1 Like

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 🥲

Could you please share exact chmod commands that allowed to fix the issue?
Thanks in advance.

The chown command is in the troubleshooting section of zigbee2mqtt:

https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html#verify-that-the-user-you-run-zigbee2mqtt-as-has-write-access-to-the-port

It should be:

sudo chown [USER] [PORT]

If your user is michalw2 and the zigbee stick is at /dev/ttyACM0 the command would be

sudo chown michalw2 /dev/ttyACM0

You would likely need to follow the “extra steps” in the linked documentation to make sure this sticks at reboot

2 Likes

Thank you for your help.
It turned this is triggered during configuration of ZHA when Z2M integration is already running so it was mistake trying to configure both at the same time

1 Like

I have not been able to get the device to work and I get the same error as the start of this thread

Zigbee Home Automation
Failed to probe the usb device

It is new out of the box on an ha instance working fine with many integrations and existing access to USB devices in docker. So I know this generally works.

My docker compose is:

    devices:
      - "/dev/ttyUSB1:/dev/ttyUSB1"

I know this is the right device because: /dev/ttyUSB1 - Nabu_Casa_SkyConnect_v1.0_XXXXX

crw-rw---- 1 ntableman dialout 188, 1 May 16 14:19 **/dev/ttyUSB1**`

so I know I own the port

any ideas on why this device just fails to work?

I was able to catch this in the logs

2023-05-21 13:52:21.419 WARNING (MainThread) [zigpy_deconz.api]
No response to 'Command.read_parameter' command with seq id '0x02'

The device works fine on a basic HA docker setup, so anyone have any ideas on what is conflicting here?

What’s the difference between this “basic setup” that works and the one that doesn’t work? You say this is a container install, what is the host OS?

Nothing! Same docker-compose, same hardware, same host OS. What is different is the basic setup has no devices setup, no integrations setup, perhaps vanilla / OOTB / naive is another way to describe it. So my diagnosis at this time is that something in my actively used container is blocking the use of this device. But figuring out which one…well I guess I will install things one at a time to see.

Linux kulshan 6.2.0-20-generic #20-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr  6 07:48:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Distributor ID:	Ubuntu
Description:	Ubuntu 23.04
Release:	23.04
Codename:	lunar

Are you stopping and removing the other “basic” container before creating the new production one? The device can only be assigned/used by one docker container at a time.

HAHAHA, yes, but thanks for checking :laughing:

I guess I’m giving up on this device until I figure something else out…I’m wondering if NUT or some other process is preventing proper use of the device. I guess I could run HA on some random rasp pi and link it to my main computer…

I’m running Home Assistant OS v2023.6.3 on an HP desktop PC & I bought a Sonoff ZigBee USB Dongle E to use as a ‘router’ on this setup.

I flashed the Sonoff Dongle with the ‘router’ firmware & tested it works by plugging it into a Raspberry Pi also running Home Assistant - it was discovered and set up as a router okay.

However, when I take the dongle & plug it into the HP desktop PC running Home Assistant OS, it’s discovered in the integrations okay - I then press the ‘Configure’ button and after a few seconds I get the “Failed to probe the usb device” error (see attached image).

I’ve tried several times and keep getting the same error. Any ideas as to how to get this Sonoff ZigBee dongle working as a router on my Home Assistant OS desktop PC?

I’ve found that if I try to add the ZigBee Integration manually, it prompts me to select my Sonoff Dongle device (see attached image) but then after selecting the Texas Instruments Radio Type (which I believe is the correct one), it then fails to communicate with the device.

It doesn’t seem to matter what device or hardware/software flow control I select.

I’m guessing there’s something I’m not aware I need to do in order to get this USB device functioning under Home Assistant OS?



(Just for clarification - I already have Home Assistant running on a Raspberry PI with another Sonoff USB Dongle acting as the Coordinator for my ZigBee network. What I’m trying to do is flash this new Sonoff USB Dongle as a ‘Router’ and plug it into my Desktop PC running Home Assistant OS so I can get my ZigBee network shared with the Home Assistant OS on the desktop PC - I’m assuming this is possible???)

In the Home Assistant frontend, if I go to Settings > System > Hardware > All Hardware and search for Sonoff, I have this device listed:

/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20221201083012-if00

But it doesn’t seem to matter if I Copy&Paste that device directory when I try to add the ZigBee Integration, it still fails to communicate.

UPDATE: I’m beginning to suspect that I can’t add an instance of Home Assistant OS onto my existing ZigBee network like any other ZigBee device, simply by plugging in a ZigBee USB Router to the Home Assistant PC.

Would I be correct in now thinking that an instance of Home Assistant OS can only act as the host for a Coordinator and can’t be a ‘client’ of a ‘Router’ ??

So, with my Sonoff ZigBee USB Dongle flashed as a Router, I can only configure it to join my existing ZigBee network which already has a Coordinator?

So with my two instances of Home Assistant (one on Raspberry Pi & one on Home Assistant OS on a Desktop PC), then I would need to reflash my Dongles to give me two Coordinators, which essentially creates two separate ZigBee networks, and then all my other ZigBee devices can be joined to one or the other, but not both networks?