Zwave-JS-UI in place of OH Zwave binding

I have also taken the plunge and moved to zwave-js-ui last week after reading this thread. I have 60 devices and automated the migration using the OH API to add new things and link my existing items. I’m using an Aeotec Gen5+ controller but plan to upgrade to a 700 series controller soon. Everything has been very reliable so far and I’ve updated firmware on over 20 Aeotec devices OTA without any issues.

Few features of zwave-js-ui that make operating a zwave network much easier

  • firmware updates
  • replace nodes (node id retention)
  • useful network map

One problem that I did run into was battery level reporting. The OH zwave binding automatically polls battery levels daily for devices that don’t support unsolicited battery level reporting but zwave-js-ui currently only does this weekly. There’s a facility to configure regular polling of a specific device attribute in the general settings screen in zwave-js-ui which I’ve been able to use to reinstate battery level reporting but it doesn’t seem to work if you poll every 24hrs so I’ve had to poll every 12hrs for now. It’s also possible to perform a poll of a value via MQTT so this could be written as a rule in OH.

Noticed this too. At first I tried the configured poll (and I thought it was working at 24 hours?) but I decided to pick up the device last activity (They still wake about every 24 hours). My battery devices do not degrade very fast and I figured less polling was okay.

UID: mqtt:topic:f06f8352c2:Time_Stamps
label: Time Stamps
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:f06f8352c2
location: Time Stamps
channels:
  - id: Last_furnace_flood_n
    channelTypeUID: mqtt:datetime
    label: Last Activity Furnace flood
    description: null
    configuration:
      stateTopic: zwave2/Furnace_Area_Leak/lastActive
  - id: Last_water_heater_flood_n
    channelTypeUID: mqtt:datetime
    label: Last Activity Water Heater flood
    description: null
    configuration:
      stateTopic: zwave2/Water_Heater_Leak/lastActive

FYI Another difference on the battery devices is that zwave-js will validate both the wakeup node and wakeup frequency if the device wakes up late. This is done for the Zwave specification suggestion.

CL:0084.01.52.03.1 A controlling node SHOULD read the Wake Up Interval of a supporting node when the delays between
Wake Up periods are larger than what was last set at the supporting node.

I have found that some of my battery devices have bad internal clocks so get reminded daily (or so) that they are supposed to wakeup at or before 86400 seconds. Possibly your 24-hour battery poll is missed if the device wakes up early (Does the poll happen the next day?)

I don’t know what this means. Am I correct in thinking it’s an openHABian image that you’ve installed Docker on top of? I know very little about Docker

Also, do you think it would be possible to add ZUI as an option in openHABian? Or are there performance concerns?

It just means don’t ask for support.

It is more of a side by side situation

In the future yes. I do think it could be tight on a rpi3 1GB and with all the forum comments on capacity re OH4 would need to be looked at.

1 Like

Just want paste (not advertise it):

Any suggestions if we could benefit of that hardware? (not software please!!)

This feels a little off-topic.

There’s a similar discussion for the HA boxes. In both cases I’d think its more effort than it’s worth, relative to an RPi 4/5 or similar SBC.

Does OH supposed to connect directly to Zwave-js-ui ?
What the sentence ‘configured Zwave-JS-UI to use existing mqtt broker’ supposed to tell ?

Is there a way to have captures and explanation of network settings : protocols, ports.
I have also Zwavejs-ui and OH in 2 separated Synology Docker Container ?
I can use both web user Interface. But I’m confused on network streams.
I can’t even have MQTT Explorer Working : ws:// http:// mqt:// ?? port 3000 ? 8091 ?

You need to set up a mqtt broker (running that in dedicated docker container), add MQTT binding in OH, configure accordingly and also configure Zwave-JS-UI to use the mqtt broker.
There is no direct communication between OH and Zwave-JS-UI.

Thought the same so I left the 24hrs poll setup for several days but never received any battery updates. It’s almost like the poll is timing out. I’m planning to increase my 12hr poll to something like 20hrs to see if that still works. I’ve had 3 days of reliable battery updates with 12hr polls now.

1 Like

I know the volumes needed for OH. Which Docker config/volumes is needed to have best experiences with Zwave-js-ui?

This creates a Synology Docker container for zwave-js-ui. (I reassigned port 3000 because is in use by Grafana.

# Make sure that all line end characters are LF only, not CRLF.
# Line continuation is a backslash but the backslash must be the 
# last character before the end-of-line.  (No spaces between 
# the backslash and the LF). 
# --no-healthcheck 
sudo docker create  \
--name ZwaveJS  \
--net=host  \
--restart=no  \
--memory=2147483648  \
--device=/dev/ttyACM0 \
-p 8091:8091 \
-p 13000:3000 \
-e TZ=America/Chicago \
-v "/volume1/docker/ZwaveJS/Store:/usr/src/app/store"  \
zwavejs/zwave-js-ui:latest

Zwave-js with aeotec stick 7 in docker on raspb. 4

I moved to Zwave-js with a fresh installation of the net on stick 7. It looks great and nearly everything is doing their job. Some devices send the battery report along with motion message. The big problem at the moment is to get an continuously update of data like current or power from power sockets. I use aeotec smart switch vers 6 and 7. all parameters are set ( 600 sec message interval or threshold of 0.2 A), but no reaction. Only pressing the „refresh“ button in the app updates these datas.
How can I force these updates, thanks

Update : smart switch ver 6 is sending data, but ver 7 is still very untalkative

As a general comment, I would like to keep this thread related to issues with the transition from the OH zwave binding to Zwave-js-ui. One of the benefits of Zwave-js-ui is there are lots of options to explore device specific issues and if all else fails post on the Zwave-js github (generally device issues will be with the underlying Zwave-js, not Zwave-js-ui). I would add that I have this device and it works fine, so it is probably not a Zwave-js issue.

That said, if the device is not working as it did in OH on transition, the first thing to do is reinterview (suggested this a few posts above to a separate device issue). That Aeotec 7 has a huge amount of configuration parameters for a plug and the initial ZUI startup is very active and something might have been missed.

I have found devices deal with the “time” and “threshold” parameters report differently. After the reinterview, disable the threshold and just use time. Check the events tab to see if that is working and go from there.

Lastly, (and I don’t think it will come to this) in the general section, device specific polling can be setup (see the ZUI docs for details). Also a few posts above it was being used to get battery values every 12 hours.

Sorry, don‘t want to spam your thread. Your info helped - set just only time parameter active

No problem. Actually a note of thanks :pray: I’ll add a trouble shooting section on the first post. Just don’t want to provide support for 1200 zwave devices, just because they are on Zwave-js.

I vaguely recalled that the aeotec 7 used both threshold AND time. Rather than time OR threshold.

Does anyone have any idea how I can show in OH that Z-Wave ui js is also running?

Try the zwave/driver/status topic

1 Like

A heads up to the GitHub… someone is/can developing an official binding…

Note that at this point, that issue is a feature request, and no one has committed to working on it yet.

I have tested this but it looks for me not reliable. I had many cases where the status was true, but the serial connection has been lost. The “auto recovery” via soft reset seems not to help. What I’m now trying is to check the output in the logfile (“Performing soft reset…”).
Unfortunately until I have implemented it, I have no troubles with the connection :wink: