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

From the Devices & Services page:

It’s a large light blue button.

image

I followed this guide and in step 9 everything looked good. Connected with new path but after uninstalling the JS UI I get error with that path. Only thing I did outside of process is at the end after re-enabling the integration I clicked start.

EDIT: I uninstalled the wrong add-on at the end. Guessing I need to start from the beginning at this point. Or should I restore from backup and start over?

EDIT: I restored backup and used freshcoast name export import. Thanks for that.

Final EDIT: Thanks for the great guide as I no longer have to look at the 7 dead nodes.

1 Like

Awesome guide!

I was rather hesitant updating to ZUI, but this guide made it supersimpel.

One annoying thing, but that’s due to MacOS.
If I download the zipfile it unpacks it automatically. So I had to rename the original file before downloading it and name it zjs.zip again prior to uploading.

Many thanks!

1 Like

I used this guide and was able to convert from Z-Wave JS to Z-Wave JS UI no problem!

1 Like

thank goodness for this guide. I tried and failed twice to follow other instructions to make this change to ZUI. My use case involved a AEOTEC ZW090-A Z-SSTICK GEN5. I have a Homeseer SmartStick G8 stick I want to convert to, but I need to be running ZUI to make a backup that can be restored onto the G8.

This guide worked perfectly. I think at least part of my issue was leaving SOFT RESET enabled in the previous attempts. I read in the comments to disable that because the G5 stick doesn’t recover. This was exactly the behavior I saw. I had to unplug and/or reboot and then I was in the ether. :melting_face:

If you are upgrading from an old Gen5 stick, follow this guide and you’ll be all good. :100:

1 Like

Also want to add my thanks @freshcoast. Great help having explanations of the steps, too.

I was excited to see the network graph of my device routes – although it’s pretty crazy some of the paths back to the controller. I had purposely placed plugged-in devices in a few place to help reach distant nodes. But the graph showed those were not even being used! I’ve rebuilt the routes a few times but still some crazy, unexpected jumps back to the controller. My controller might not be in the best place, I guess.

I have a Zooz ZST39 LR controller and it’s suggesting I upgrade:

I’m running FW: v1.1 SDK: v7.18.1, but my mesh has been pretty solid, so been hesitant to upgrade.

Anyway, thanks again for the guide.

Mine, on the other hand, has decided to completely and utterly crap out now.

This whole Zwawe-JS and Zwave-JS-UI thing is an unmitigated disaster for me. What a mess and a pain.

FYI
I followed this guide during a clean install of my system (which has a problem I am trying to troubleshoot).

I was successful with the following steps on the old system. Step 2 is not applicable.

  • 0 file, ssh, and backups
  • 1 zwave config and device name backup
  • 3 and 4 cache files backup

On the new system, I successfully completed these steps

  • 5 install ZUI
  • 6 import cache files (from 3 & 4)
  • 7 configure ZUI (from 1)
  • 8 import device names (from 1)

Step 9 is where things took a turn not described in the guide.
Instead of the integration search showing ‘zwave’ or ‘add zwave device’, it showed ‘ttyACM0’ and ‘add zwave device’. I should have taken a screen shot, but there was something to the effect of add a system under ttyACM0 so I chose that.

It popped up the screen to choose the supervisor. I unchecked the box, put in the URL and hit submit. I do not recall getting the ‘Device already configured’ window. What resulted was an enabled zwave integration with almost 1,000 entities but no devices. A device link was not even on the window.

I tried to disable and enable, but no effect. I restarted my system and the 33 devices now appear. The config and diag window looks correct.

Wow! Thank you for the guide! It worked on the first try. A couple of comments in case they help:

  1. Step 8.1 - Took me a bit to figure out what the FAB action button was. Maybe describe it as a blue hamburger button on the bottom right.
  2. Step 8.1 - between steps 4 and 5 add text stating to select the nodes.json file that was saved then click open.
  3. Step 9 - I made the mistake of choosing “Add a Z-Wave device,” but it still took me to the correct screen after another screen that I do not remember.

I wanted to have quicker access to the Zwave UI, so I followed this example and this Custom Panel documentation to add a link to the side panel:

  1. Using the File Editor, open the file /homeassitant/configuration.yaml.
  2. Add the following YAML snippet to your existing panel_custom: section if you have it, or add the snipppet to the end of the file as follows:
panel_custom:
  - name: zwavejsui
    sidebar_title: Z-Wave UI
    sidebar_icon: mdi:z-wave
    js_url: /api/hassio/app/entrypoint.js
    url_path: "hassio/ingress/a0d7b954_zwavejs2mqtt"
    embed_iframe: true
    require_admin: true

:warning: Indentation is critical in a YAML file.
3. Save the file by clicking the red disk button in the top right corner.
4. Navigate to Developer Tools, the click “Check Configuration” and verify you get a message like “Configuration will not prevent Home Assistant from starting!”
5. Click on “Restart” and select “Restart Home Assistant.”
6. Wait until the system has restarted and verify there is a new “Z-WaveJS UI” entry in the side panel.

I hope this is useful to you all!

2 Likes

How is this different from enabling the sidebar icon in the add-on configuration?

This worked perfectly for me up until I entered the security keys into the JS UI. I get an error “keys must be different”.
I tried completely uninstalling zwave js at that point and deleting all data. Didn’t help.
Running HAOS 14.2, and HA core 2025.1.4. and z-wave JS UI 3.19.0. I am completely dead in the water. I can restore from backup but would prefer not to.

Thanks for whatever help you can give me

Sounds like you are entering the same key into multiple fields, which wouldn’t be correct. What keys are you moving over exactly?

I saved a copy of my configuration file from zwave js in notepad. I am copying from the each key in the notepad file to the comparable field in the zwave js UI. So S2 Unauthenticated got copied to S2 Unauthenticated. I get an error on the first copy/paste, so am definitely not copying the same key to multiple locations. Some additional information. I just tried copying the LR keys and they worked fine, but the other keys still say keys must be different, even if I delete what i copied into them.

Well the phrase literally only appears in the code checking for duplicate keys

Perhaps try a different browser?

Just fill in all the keys and the error messages will go away.

Thank you, that worked, guess I gave up too easily

I’d filled in all my keys and still had the red text saying keys must be different for two of my keys. I put the curser at the end of the key, backed up one character, retyped the same character, hit tab, that fixed the error.

Just great, many thanks!

Yah - this is the strangest thing…has happened repeatedly. Just delete the last letter and re-enter and all is fine. Only seems to happen on the first one or two entries though.