Unable to create a serial symbolic link to a persistent name using by-id or udev rule

Ubuntu Version: 24.04.3
Gnome

I installed zwave-js-ui using docker and received an error regarding zwave did not initialize properly:

sudo docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave -v $(pwd)/store:/usr/src/app/store zwavejs/zwave-js-ui:latest

“Z-WAVE: Z-Wave driver not inited, no port configured” which indicates that /dev/zwave did not exist even though the by-id reference was included in the docker run. The zwave dongle shows up as /dev/ttyACM0.

[191489.651161] usb 1-5.1.1: new full-speed USB device number 14 using xhci_hcd
[191489.736697] usb 1-5.1.1: New USB device found, idVendor=0658, idProduct=0200, bcdDevice= 0.00
[191489.736730] usb 1-5.1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[191489.747168] cdc_acm 1-5.1.1:1.0: ttyACM0: USB ACM device

I also tried setting up a udev rule as so which also did not work. It did work in Ubuntu 20.04.

SUBSYSTEM==“tty”, ATTRS{idVendor}“0658”, ATTRS{idProduct}“0200”, SYMLINK+=“zwave”, GROUP=“dialout”, OWNER=“root”

I have found references to a apparmor namespaces issue with an application, but in this case I am able to open the serial port without any issue.

Any ideas what I should try next?
Thanks
Mark

Can you query the devices on your host (hypervisor) ?

ls -l /dev/ttyACM0
ls -l /dev/serial/by-id/usb-0658_0200-if00

Can you post the complete logs from docker? That can help give some insight.

xxxx-NUC7i5DNKE:~$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Jan 17 08:33 /dev/ttyACM0

xxxx-NUC7i5DNKE:~$ groups
xxxx adm dialout cdrom sudo dip plugdev users lpadmin vboxusers

xxxx-NUC7i5DNKE:~$ ls -l /dev/serial/by-id/usb-0658_0200-if00
lrwxrwxrwx 1 root root 13 Jan 17 08:33 /dev/serial/by-id/usb-0658_0200-if00 → ../../ttyACM0

More details when running docker. Console printout after issuing run.

2026-01-19 15:02:41.016 INFO APP: Version: 11.10.1.65ed2e3
2026-01-19 15:02:41.027 INFO APP: Application path:/usr/src/app
2026-01-19 15:02:41.027 INFO APP: Store path:/usr/src/app/store2026-01-19 15:02:41.036 WARN STORE: settings.json not found
2026-01-19 15:02:41.037 WARN STORE: scenes.json not found
2026-01-19 15:02:41.038 WARN STORE: nodes.json not found
2026-01-19 15:02:41.044 INFO APP: Listening on port 8091 protocol HTTP
2026-01-19 15:02:41.048 WARN BACKUP: Store backup is disabled
2026-01-19 15:02:41.048 WARN BACKUP: Nvm backup is disabled
2026-01-19 15:02:41.050 WARN Z-WAVE: Z-Wave driver not inited, no port configured
2026-01-19 15:02:42.315 INFO APP: ::ffff:172.17.0.1 GET /sw.js 200 22455 - 15.461 ms

Per the zwave-js-ui instruction, I created a store directory and then ran the docker run command as in the original post. The logs subdirectory in store is empty and I could not find a container in /var/lib/docker. Actually there isn’t a docker subdirectory in /var/lib. I was under the impression that a container should have been created with the run command. Sorry I can’t give more information as I am new to docker.

I suspect this a something in Ubuntu 24.04 and not necessarily docker related as I could not create a /dev/zwave even with a udev rule.

This topic was automatically closed after 30 days. New replies are no longer allowed.