My zwave setup includes a Homeassistant VM and 2 Raspberry Pi’s running Z-Wave JS UI via docker with Zooz sticks. One of these RPIs is close enough to the hardware running the HA VM, that I’d like to combine them, moving the zwave dongle from the RPI to the VM, migrating those Z-Wave JS UI attached nodes to the HA Zwave JS add-on.
Of course, I’m hoping to do so without renaming/reconfiguring all of those nodes. Is that impossible?
To migrate Z-Wave JS UI you go to the store page. Here you need to click the backup option. Then when you get the addon up and running go to the store page and click the restore button.
That’s super helpful, hadn’t seen that yet! I’ll give that a try and confirm.
Thanks for the direction, this got me 90% there. Ultimately this worked, I was able to cleanly move from remote Z-Wave JS UI to Community add-on Z-Wave JS UI with no reconfig of scenes/automations/entities.
A few points for anyone else trying this:
My HASSOS VM is running in TrueNas Scale. USB Device passthrough works, but I had to specifically use the pii4-uhci controller type to get it to work. There are lots of posts that state that Truenas can only do PCI device passthrough, these appear to be outdated. USB Device Passthrough works on Truenas Scale 24.10.0.2
There are two AddOns: Z-Wave JS (Official add-on), and Z-Wave JS UI (Community add-on. I accidentally started with the official add-on, which won’t work since I’m moving from Z-Wave JS UI, not Z-Wave JS. There are a handful of comments/posts out there that imply/state that JS UI is sort of an overlay of JS, it’s not. They are totally separate and you probably only need one of them.
Using any of the options, Z-Wave JS (Official Add-On), Z-Wave JS UI (Community Add-On), Z-Wave JS UI (Remote Docker/Pi Combo), is a two step process. You build/instantiate the Z-Wave JS/Z-Wave JS UI instance, then you add it as a Hub to HomeAssistant. Some of the misinformation out there I believe stems from the fact that if you don’t uncheck the “Use the Z-Wave JS Supervisor add-on” option when adding a hub, HA automatically installs it.
I’m not 100% sure about this, but I also suspect that if you have added the Z-Wave JS (Official) hub, and then delete the Z-Wave JS (Official) add-on, and reboot HA, it might re-install the add-on. So if you start down the wrong path, remove the hub, uninstall both add-ons, then just install the add-on you need. (Z-Wave JS UI in my case).
My actual steps:
Backup config from remote Z-Wave JS UI instance as you described
Kill Z-Wave JS UI remote container (docker kill )
Remote Zooz stick from remote PI
Install Zooz stick on Truenas host
Shutdown HA VM
Configure USB Passthrough on HA VM
Startup HA VM
Add Z-Wave JS UI Community Add-On
Configure Z-Wave JS UI Add-On to use the passed-through Zooz stick, confirming driver startup
Restore previously saved config
Fix Controller/Serial Port reference (docker image uses /dev/zwave)
Restart Z-Wave JS UI Add-On
Add new Local Z-Wave JS UI based Hub
The last step, I assumed I’d use ws://localhost:3000, but that didn’t work. Official add-on docs say to use ws://a0d7b954-zwavejs2mqtt:3000, which DID work. I’m assuming this is a static docker image/host name or something.
Once this was done, I actually had both Hubs present in HA, the remote hub now “failed” because the docker container is killed (still could have swapped back), and I was able to confirm that all my entities are working, no naming issues.