Install and setup Zwave JS UI with Snap on a Raspberry Pi

Hi,

This is an issue with Debian and not this snap package. You can read more about it in the snap channel of the Zwave-js Discord.

There’s also these:

https://www.reddit.com/r/debian/comments/1331wlr/comment/jkaq50z/?utm_source=reddit&utm_medium=web2x&context=3

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1035094

Hi Team, apologies if this is a newbie mistake but I am having difficulty with device states updating.
I am running an Aetoec Zwave Stick 5 and aeotec switches and dimmers all of which I know should be capable of polling as other half has them running in HA with no issues.
Using Zwave JS UI and noticed that if I change device state in JS UI it doesn’t show in HA and also, more importantly, when I use physical switch HA isn’t updating. Does anyone have any suggestions as assume I have done something wrong. Have tried both Zwave JS and JS UI and having the same issue.

I had once same isse with one of my switches. Re-interviewing the device solved my problem.

So I know this is not the right place for this, but may be someone can push me in the right direction. I see binary switch and I get that, but how do I use scene activation? Once I can trigger the scene from my light switch, how can I use it in an automation?

I’ve been searching and looking but haven’t seen anything in the documentation for zwave_js_ui. I’m pretty sure I don’t know what to look for. I tried searching for scene activation v1 or scene actuator configuration v1 but with no luck. I have a zwave button that only has scene activation and scene actuator because it is not physically connected to a switch.

I also made a thread about it and got no response so far. Maybe I need a different title…

You use the scene actuator configuration settings to assign a dimming value to each scene. This is like making presets that get stored in the device. Then when you type in the scene number in SCENE ID box under SCENE ACTIVATION the device will activate the settings associated with that scene.

do you mind if I message you in your inbox? I don’t want to hijack the thread any further.

1 Like

First of all, thank you for the great guide. However, I am still stuck… I followed the guide and started fresh with a Raspberry Pi 4 + an old Zooz Z-Wave stick (ZST10).

I got up to step 4 where “sudo snap interface serial-port”

For this, I am only shown:
name: serial-port
summary: allows accessing a specific serial port
plugs:

  • zwave-js-ui

I don’t know how to execute the next step "sudo snap connect zwave-js-ui:serial-port " and I think that is causing me problem in the UI and following steps.

The stick is powered, in UI I can see it being /dev/ttyACM0. When I unplug it, /dev/ttyACM0 is gone from UI Settings.

I also tried setting the UI settings Serial Port to /dev/ttyACM0 but still have error at the top:
Driver: Failed to open the serial port: Error: Operation not permitted, cannot open /dev/ttyAMA0 (ZW0100)

1 Like

I think there were others having same issue as you. Check the replies above, whether it helps.

Same problem over here!
I manage to get Zwave-JS-UI working on a freshly installed RPI (Debian Bullseye from 2023-05-03) in the way perfectly explained above,
but as soon as I update Bullseye (“sudo apt update” && “sudo apt upgrade”) Zwave-JS-UI can no longer connect to my Zwave stick (“Driver: Failed to open the serial port” in Zwave-JS-UI and “sudo snap interface serial-port” no longer shows a “core”…).
very frustrating…

I am going to try to re-do the procedures without upgrading the debian to the latest and the greatest…

Edit:
I started fresh without first updating the OS. It looks like it works now. I believe it is what the above posts said one of the updates broke the settings and I don’t know how to fix it…

The solution is to, in the beginning of step 3
instead of sudo snap install --channel=stable zwave-js-ui
use sudo snap install --devmode --channel=stable zwave-js-ui
based on the earlier hint of @TheMadDotNetDev.
So then you’re in --devmode from the start and that works (for me). You can also hold the updates for a while and later when an update is available do a refresh with --devmode (like @TheMadDotNetDev originally suggested)

I updated Home Assistant Core to 2023.10 and it now says I need a newer version of Z-Wave JS UI.

I checked snap list and I’m running latest/stable which is v8.26.0 (zwave-js-ui: 8.26.0.08e6a7e, zwave-js: 11.14.3).

I am going to temporarily roll-back my home assistant image to an earlier backup, but what’s the solution here?

Unfortunately the snapd store didn’t upgrade the version as fast as Home Assistant required. I think if you want to use 2023.10, you have to then switch to latest/candidate, it is now at v9.0.3.

Ah okay thanks.

Is there a timeline for snap stable to update? I don’t mind holding HA core back for awhile.

Just build zwavejs-ui with NodeJS and Yarn instead. It’s super easy and takes only a few minutes.

It’s described here, the last method at the very bottom of that page. That’s how I always build zwavejs-ui.

@cofw2005 thanks for his write uo, it helped me a lot installing the ZWave-JS-Ui via snap on a Homeseer Z-net device I have. It took me a while to get the ZWave-JS-UI working and connectin to the onboad Ezzee card but not this part is working.

My issue now is that I can’t get HA to connect to the JWave-JS-UI, and I can’t see a thing in the log. I try add a host option on HA Zwave and made sure the ‘use supervise module’ was not selected, i entered the ws://ip of the Raspberry running Zwave-js-ui:3000 but there literaly nothing hapenning, I looked in the JWAVE-JS-UI log to see if there was anything but nos signs of communication.

I made sure I could ping bothe cachine on both directions so I know it is not a network issue.

Would anyone have hints on what could be the issue ?

***** got it to work, needed to disable bluetooth and enable uart=1 ****

good that it worked :slight_smile:

Just updated to latest with apt-get update and upgrade and exact same symptoms. Comes in as ttyACM0 but z-wave-js-ui can’t read it. If I unplug and replug it in it comes back as ttyACM1 but still it can’t read it…

Worked fine for a year+ before updating the OS… that’ll teach me.

Ran in debug and you get this:

2024-03-18T23:18:18-04:00 zwave-js-ui.zwave-js-ui[1712]: 2024-03-18 23:18:18.212 INFO Z-WAVE: Controller status: Driver: Failed to initialize the driver: ZWaveError: The Serial API did not respond after soft-reset (ZW0100)
2024-03-18T23:18:18-04:00 zwave-js-ui.zwave-js-ui[1712]:     at Driver.softResetInternal (/snap/zwave-js-ui/354/lib/zwave-js-ui/node_modules/zwave-js/src/lib/driver/Driver.ts:2586:11)
2024-03-18T23:18:18-04:00 zwave-js-ui.zwave-js-ui[1712]:     at Driver.initializeControllerAndNodes (/snap/zwave-js-ui/354/lib/zwave-js-ui/node_modules/zwave-js/src/lib/driver/Driver.ts:1445:5)
2024-03-18T23:18:18-04:00 zwave-js-ui.zwave-js-ui[1712]:     at Immediate.<anonymous> (/snap/zwave-js-ui/354/lib/zwave-js-ui/node_modules/zwave-js/src/lib/driver/Driver.ts:1226:5) (ZW0100)

Then it will reset and come back in another USB device. For example, if it was ttyACM0 it will now be ttyACM1 after this error message. If you update the setting to point at the new USB, it will just repeat the error.

Okay found others had the same issue who were running it directly on HA:

The solution is to disable “Soft Reset” in Z-Wave under settings. Solved it for me. For anyone else banging their head against the wall, I leave the solution here for reference.