Home Assistant Docker Z-Wave USB stick

Hi All!

I’m new to this topic, and need some help. My friend lent his Silicon Labs 500 USB Z-Wave stick to me. I tried to integrate it to my system, but I cannot make it working correctly.

I’m running HA in docker container. Installed ZWave To MQTT as separate container, and then integrated it with HA via port 3000. It founding the USB stick, but nothing else working. I cannot add new z-wave devices, it fonund nothing during Inclusion process.

I tried the stick in a new HA virtual machine (VMware Workstation, VMDK from official site) install and it worked perfectly for the first try.

My docker images/containers are up to date.

In the VM, it recognised the stick and the other z-wave devices correctly (name, etc), but in the dockerised version it cames up with different name (the stick cames up like it’s a temp/humidity sensor and the smart wall plug as unknown).

Do you have any idea, why working the containerised version differently then the included one in the virtual machine?

My main setup:

HA runs in docker:

version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /opt/homeassistant_config/:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

ZWave to MQTT in docker:

version: '3.7'
services:
    zwavejs2mqtt:
        container_name: zwavejs2mqtt
        image: zwavejs/zwavejs2mqtt:latest
        restart: always
        tty: true
        stop_signal: SIGINT
        environment:
          - SESSION_SECRET=secretpassword
          - ZWAVEJS_EXTERNAL_CONFIG=/usr/src/app/store/.config-db
          # Uncomment if you want log times and dates to match your timezone instead of UTC
          # Available at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
          - TZ=Europe/Budapest
        networks:
          - zwave
        devices:
          # Do not use /dev/ttyUSBX serial devices, as those mappings can change over time.
          # Instead, use the /dev/serial/by-id/X serial device for your Z-Wave stick.
          - '/dev/serial/by-id/usb-0658_0200_EXXXXXXX-XXXX-XXXX-XXXX-XXXXXXAE6CB8-if00:/dev/zwave'
        volumes:
          - /opt/z-wave-js/:/usr/src/app/store
        ports:
          - "8091:8091" # port for web interface
          - "3000:3000" # port for Z-Wave JS websocket server
networks:
  zwave:

I tried everything, reinstalled/configured/rebooted all of the components, but nothing worked.

Then I found a comment on a local HA FB-group, where they mentioned that an another USB stick is only worked, if they connect it to an USB-HUB. I tried it, and it works now flawlessly! (I’m using a rPi4 as host, if it’s matters.)

That in fact is the exact reason it matters. The USB port on a Pi is NOISY and it’s interfering with the stick itself. Putting an extension cable or USB hub between the stick and the pi solves or at least mitigates the interference so the stick can work properly.

Remember ZWave and Zigbee are very low power radios it doesn’t take much at all to interfere.