Host OS: Windows 11 ver 21H2 (Build: 22000.376)
WSL2 dist: Ubuntu 22.04 (5.10.102.1-microsoft-standard-WSL2)
Zigbee USB-device: Sonoff ZIGBEE 3.0 USB DONGLE PLUS (w. native firmware)
Docker Desktop (running on host i.e. Windows): 4.9.1 (81317) Settings > Resources > WSL Integration > “Enable integration with my default WSL distro” and “Enable integration with additional distros: Ubuntu 22.04”
Hello,
Recently tried to get HomeAssistant running on my Windows 11 machine to try out my newly arrived “Sonoff Zigbee 3.0 USB Dongle Plus”.
In Windows the USB-device is identified as “Silicon Labs CP210x USB to UART Bridge (COM5)” under “Ports (COM & LPT)” after installing either the official ( ? ) drivers from here;
or from Sonoff directly;
SONOFF-Zigbee-3.0-USB-dongle-plus-firmware-flashing-.pdf
I then pass my USB-device to my WSL-distribution (Ubuntu 22.04) as per here;
Connect USB devices | Microsoft Docs
Checking “usbipd wsl list” returns (in PowerShell);
BUSID DEVICE STATE
1-14 Silicon Labs CP210x USB to UART Bridge (COM5) Attached - Ubuntu-22.04
I then run “lsusb” (in my WSL-dist - Ubuntu 22.04) which returns;
Bus 001 Device 009: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
I am using Portainer to manage my Docker containers so the HomeAssistant container is setup using it with the following non-default settings;
- Env
TZ = Europe/Stockholm
- Volumes
Host/volume Path in container
homeassistant /config
-
Network
Bridge
-
Port configuration
8123 > 8123
-
Runtime & Resources > Devices
host:/dev/ttyUSB0 container:/dev/ttyUSB0
-
Runtime & Resources
Priviligied Mode
Starting HomeAssistant it automatically detects my Sonoff USB-device;
Pressing the device and then confirming that I want it to be setup results after a while in;
Zigbee Home Automation
Failed to probe the usb device
the device then disappears from the printscreen above but is still listed if I do “lsusb” in my WSL-dist.
Finish > Settings > System > Logs;
at: No response to AP command
10:58:34 PM – (WARNING) /usr/local/lib/python3.9/site-packages/zigpy_xbee/api.py
Retry command 0x0002
10:58:32 PM – (WARNING) /usr/local/lib/python3.9/site-packages/zigpy_zigate/api.py
No response to command 0x0002
10:58:32 PM – (WARNING) /usr/local/lib/python3.9/site-packages/zigpy_zigate/api.py
No response to 'Command.device_state' command with seq id '0x02'
10:58:30 PM – (WARNING) /usr/local/lib/python3.9/site-packages/zigpy_deconz/api.py
Now I’ve read that you should actually do a “bind”-mapping in Portainer of:
Host/volume Path in container
/dev/serial/by-id /dev/serial/by-id
however my WSLs “/dev/serial/by-id” is empty and the examples I’ve seen indicates that there should be a file there named something like “sonoff-zigbee-3-0-usb-dong” (or at least a file that can be assumed to be the Sonoff USB-device).
Also trying to do a bind-mapping in Portainer of above actually results in this;
Host/volume Path in container
/run/desktop/mnt/host/wsl/docker-desktop-bind-mounts/Ubuntu-22.04/62d499dd032f6785fe3affd28998747c6d6e8a4b4ff5de2acdefdce458254eac /dev/serial/by-id
however “/run/desktop
” does not exist, what does exists seems to be;
/mnt/wsl/docker-desktop-bind-mounts/Ubuntu-22.04/
and in that directory there are three very long GUIDs;
/mnt/wsl/docker-desktop-bind-mounts/Ubuntu-22.04$
drwxr-xr-x 2 root root 40 Jun 28 19:01 62d499dd032f6785fe3affd28998747c6d6e8a4b4ff5de2acdefdce458254eac
srw-rw---- 1 root docker 0 Jun 28 18:45 71329c4cc6e32171553fa81d044eb31d1a3aac52ba9376c4a99f4505c494cf5b
drwxr-xr-x 10 root root 2900 Jun 28 23:10 938b99e3330802a9290b64452b1b303a7efa94dd8f5fc86b6c941cf0644ce220
and the content of “938b99e3330802a9290b64452b1b303a7efa94dd8f5fc86b6c941cf0644ce220” seems to be the same as “/dev/”.
however even if I specify:
Host/volume Path in container
/mnt/wsl/docker-desktop-bind-mounts/Ubuntu-22.04/938b99e3330802a9290b64452b1b303a7efa94dd8f5fc86b6c941cf0644ce220/serial/by-id /dev/serial/by-id
it reverts back to
Host/volume Path in container
/run/desktop/mnt/host/wsl/docker-desktop-bind-mounts/Ubuntu-22.04/62d499dd032f6785fe3affd28998747c6d6e8a4b4ff5de2acdefdce458254eac /dev/serial/by-id
Now I might be totally wrong but would appreciate it if someone has gotten this working and if how so.
Thanks / TheSwede86