Z-Wave JS to Z-Wave JS UI & Device Associations

As long as you keep the keys. Definitely get current HA backup

Zwavejsui only adds UI to zwavejs.
No more, no less. Beyond ui they are exactly same. The UI can be very useful. There is function in UI for associations.

@tmjpugh Many thanks - in all the videos I have watched, seems easy enough.

@chadhitw Scary! Definitely going to do a backup.

@tmjpugh for clarity:
Background: I have two separate antenna devices: a Zigbee and a Z-wave (not a conbo). They are well separated from the Odoid cpu by usb extensions.
I have Zibee2MQTT installed and working. I have Z-wave JS installed and working.

Question: When installing Z-Wave JS UI, I am confused about the MQTT option within the Z-Wave JS UI install. Should I select it? Would this install another instance of MQTT? Leave it un-selected? If selected would it use the currently installed MQTT?

Standing by…

MQTT is not needed. If selected it means you are connecting to an existing broker, it will not create a mqtt broker for you

HA uses websocket connection to zwavejsui

@tmjpugh Many thanks. I will start this Z-Wave JS UI install (not selecting MQTT) tomorrow, as I have a couple of devices still to move to HA from SmartThings.

Once installed will work the “association” aspect I need to connect the master light switch (Eaton RF 9640-N) to an Accessory Switch (Eaton RF9642-Z).

Any advice here would be very greatly appreciated. And yes - I will do a full backup before I start.

Standing by…

I just did this exactly myself. Here is my advice… follow this guide to migrate from Zwave JS to Zwave JS UI

In my case I am using Zooz dimmers, so I followed their article for configuring virtual 3-way How To Use Multiple Zooz Switches In 3-Way and 4-Way Set-Ups - Zooz Support Center

Hope this helps!

@br0nd ok - so after reading up - I am confused (and nervous about bricking my system - even with a full backup).

I read this: addon-zwave-js-ui/DOCS.md at be8c002cd73362fdd734559d98f317a650b0c828 · hassio-addons/addon-zwave-js-ui · GitHub

and reread this: Switching Z-Wave JS Addons with Minimal Downtime! Z-Wave JS (Official) to Z-Wave JS UI (Community)

They are a bit different.

If I just follow the addon-zwave-js-ui/DOCS.md at be8c002cd73362fdd734559d98f317a650b0c828 · hassio-addons/addon-zwave-js-ui · GitHub, then it seems to be a 4-step process. No uninstall of Z-Wave JS.

If I follow this Switching Z-Wave JS Addons with Minimal Downtime! Z-Wave JS (Official) to Z-Wave JS UI (Community), Steps 9, 10 and 11 are not in the github based instructions. In fact, step 11 appears to have me remove Z-Wave JS ? I thought the Z-Wave JS was needed and reused, and Z-Wave JS UI simply added in an additional menu/screen?

I get that steps 5 through 8 are backing-up and reinstalling - device/node configuration in case something went wrong.

or - am I over thinking this?

No. They are used exclusively. https://www.home-assistant.io/integrations/zwave_js/#can-i-switch-between-the-official-z-wave-js-add-on-and-the-z-wave-js-ui-add-on

The add-on docs don’t have instructions for switching because that’s not its purpose.

@freshcoast Many thanks. I think I understand now. When I install Z-Wave JS UI, I will uninstall (following your steps) Z-Wave JS. But Z-Wave functionality is still there - replacing one program for another.

The purpose of the backups of Z-Wave JS entities is in case there is not a smooth migration - correct?

Correct, they both provide the same service, only difference is that ZUI has its own UI and other functionality. When installed at the same time, they compete for access to the USB stick.

Well, if you’re referring to the guide, one purpose of the backup is just that, to restore in case something goes wrong. The main purpose is to transfer the driver cache files from the old to the new installation, so the switch is completely transparent and non-disruptive. If you don’t restore the cache, it’s fine (usually), you’ll just need to re-interview all of the battery devices, they won’t function anymore in HA until that’s done.

@freshcoast Ah - I now see the restore cache you are referring to. Got it. You are doing these steps on a Windows computer.

How can I tell if a sensor - door, window, motion, etc sensors are not awake?

Any way to “wake up” the battery sensors - prior to starting this process?

They are sleeping if they aren’t awake. That’s not what matters, what matters is if they are “ready” yet, meaning they’ve been interviewed.

There’s no point in doing that, they will just go back to sleep. They need to wake when the driver is ready to interview them.

@freshcoast Yes - they have all been interviewed. I have one sensor that is literally “off” - the battery is out of it. I will add in the battery and make sure it is “online”.

I will start this process tomorrow - it’s getting late here.

Any other advice before I start?


Using that guide, I was able to successfully migrate to zwave js UI today! Whohoo.

With everything working as it was, I installed a zooz zen30 double switch: a dimmer plus a relay, and a zooz zen72 dimmer. Due to the wiring (and the inability to pull any wire through solid log in a log cabin), the Zen72 controls the bedroom overhead light directly. The zen30 replaced a stacker switch, and controls the patio lights from directly via the relay. The dimmer paddle I want to be directly associated with the zen72 to control the overhead light, as the old “real” 3-way switch did.

So, installed everything fine, and added the two switches via zwave js UI. So far so good. Both switches control their directly-connected loads just fine, both locally and via zwave.

Now I get stuck.

I want to associate the zen30’s dimmer paddle with the Zen72’s dimmer… I found (but don’t remember where…) a button in zwave js ui to clear group associations, but not add them, other than within each node.

This article on Zooz’s site
describes setting up an association on group 3 only, pointing at each other. So, I tried to create one. If I click “add group,” I get two options: “Node Endpoint” with only 0 and 1 as choices, and “Group” which says it is required, but has an unpopulated drop down list (says “No Data Available”, with no place I can find to enter any data).

So, now that I have zwave js UI working, how do I actually create associations between nodes?

Are you trying to create the association at the node level and it’s not showing you any groups for zen30 ? What about for zen71 does it show you groups?
I have a zen30 that I can try to test, but I definitely have setup associations via groups for zen72 and zen32.

If only zen30 is blank, I’m guessing that the zwave js device database may be the source of that missing drop down and needs to be be updated.
If it’s not showing groups for zen72 even, then something is booked with your install. Not sure how you troubleshoot that though.

The zen72 has an existing group
endpoint 0
group lifeline
node NodeID_1
target endpoint none

If I try to add a group, my only node endpoint option is 0, and Group remains “No data available.”

The zen30 has no groups. If I try to add one, I have node enpoint options of 0 and 1, with group being “No data available”

To make sure we are on the same page… just to confirm… you are going to

  1. Zwave JS UI
  2. clicking on the node that is a zen72 dimmer (and zwave JS sees it as a Zen72?)
  3. Click on groups
  4. Click Add above the table
  5. Select Endpoint 0 and then click on the group… you don’t see the following drop down?

If you don’t see it, are you on the latest version of Home assistant, Zwave JS and Zwave JS UI? When I click the info on the top right of Zwave JS UI I see the following

OK… you’re understanding what I WAS seeing. However, now it seems to be working correctly (for both devices). It seems it just takes a day or so for things to display correctly for me?

However, the terminology doesn’t match the instructions from ZOOZ. So I’m not sure which device I set up which way.

The Zen72 actually controls the light. It gives the options shown in your screen shot (endpoint 0 is the only option)

The Zen30 controls something else on its relay, but has nothing connected to the dimmer. I want it to control the Zen72. For endpoint 0 It offers [1] Lifeline, [2] Dimmer Status, and [3] Relay Status. For endpoint 1 it offers no groups.

How do I set the groups up? Ie, do I create the group on both nodes, or just the “remote” one, or just the one that actually controls the lights? Why does one offer “control” and the other “status” (the language makes the offerings seem backwards from what I want…)

My messed up logic says I should set up the group on the zen30 like this:

But after the adventure getting zwave JS UI running, I guess I want a little reassurance before I click that add button…

Let me ask you something… Do you want dimming control virtually from the Zen30 or are ok with just on/off control from the Zen30 virtually? The steps below will attempt to allow dimmer control from Zen30, but if it doesn’t work, there is a fallback method that would just allow Zen30 to do on/off control.

Groups/associations are easy to do/redo, so experimenting is just fine. Btw zooz support is awesome so you can also email them and check but here is what I would do
Step 1 - on Zen30… to Dimmer status I would add the node for Zen72
Step 2 - on Zen72 to Dimmer status I would add the node for Zen30
Step 3 - on Zen 30 Change Parameter 19 to 2 to disable physical and zwave control of dimmer

Step 4 -I would also disable or maybe better hide the Zen30 dimmer entity from HA UI, to avoid triggering it by mistake. In general you want the zen30 dimmer to not be controlled or visible to HA, its only going to locally talk to the Zen72 dimmer using the Zwave Association.

Additional note - which is why I am not sure if dimming from Zen30 will be reliable and you may have to just use it as an on/off switch unless they update the zen30 firmware with the following parameter. The Zen30 seems to lack a parameter 7 that the Zen72 has that I had to modify to ensure smooth dimming from both devices.

Zen30 advanced settings for reference
ZEN30 Double Switch Advanced Settings - Zooz Support Center (getzooz.com)

Ideally, I’d like dimming control from the Zen30. But, in reality, dimming from the Zen30 location would be a fairly uncommon occurrence, at least in this instance. I set up as you suggested, and it works well for on/off, including single tap to a medium brightness, and double tap to full brightness. But attempting to random dim/brighten to somewhere in-between doesn’t seem to work. Honestly, this is great and achieves my goals in this particular instance.

The original owners of our house, a log cabin, had a love affair with cheap no-brand stacker switches, so most of the switches in the house are 2-4 stacker switches in a single shallow box. On interior walls, which are knotty pine car siding, I can just cut a hole and use an old work box to add boxes. But for the exterior walls, adding a box would involve a crane and a chainsaw. They also did some, um, “interesting” wiring, so those boxes tend to be about 4x overstuffed with wires by code, especially since they used a lot of 10 gauge where 14 would be customary, and 12 overkill.

Which is the long way of saying, I already have a lot of Zen30’s, this is just the first one in a 3-way configuration I’ve gotten to. There are others, and I’m not sure until I reverse engineer their wiring, which side ends up controlling which when I upgrade them to smart switches.

The Zen30 has a parameter 7, but I’m sure it doesn’t help with dimming. It’s the LED indicator mode for scene control - if I remember correctly without checking the instructions again, whether or not the LED’s show the dim level when controlled via a scene controller like they do when you’re manually pushing the button.

Oh, and yeah, ZooZ support is incredible. That’s part of why I have so many ZooZ devices in my house. Alas, in this particular instance, they got a little stuck, with the response, “Unfortunately, we do not have Home Assistant in-house to provide more specific direction.” It’s not been a problem when I’ve wanted to do odd things in the past. But I’ve also understood the software side of things I was trying to do then…

Thank you so much for your help!

Glad to help, ignoring Home Assistant for a second I would send Zooz a feature request (heck I may do it too) to add the following parameter to the Zen30. If they added this parameter, it would allow you to have seamless dimming from the Zen30 as well.
When I initially setup two Zen72’s, I had similar odd dimming behavior, till I flashed to the latest firmware and changed this parameter on the “virtual” Zen72.

### Association Reports

Parameter 7: Choose which physical and Z-Wave triggers should prompt the dimmer to send a status change report to associated devices.
Values: 0 – none; 1 – physical tap on ZEN72 only; 2 – physical tap on connected 3-way switch only; 3 – physical tap on ZEN72 or connected 3-way switch; 4 – Z-Wave command from hub; 5 – physical tap on ZEN72 or Z-Wave command from hub; 6 – physical tap on connected 3-way switch or Z-Wave command from hub; 7 – physical tap on ZEN72 / connected 3-way switch or Z-Wave command from hub; 8 – timer only; 9 – physical tap on ZEN72 or timer; 10 – physical tap on connected 3-way switch or timer; 11 – physical tap on ZEN72 / connected 3-way switch or timer; 12 – Z-Wave command from hub or timer; 13 – physical tap on ZEN72, Z-Wave command from hub, or timer; 14 – physical tap on ZEN72 / connected 3-way switch, Z-Wave command from hub, or timer; 15 – all of the above. Default: 15.

Size: 1 byte dec

1 Like