Starting over on HA, need advice how to set up z-wave (JS vs others)

Been using HA for ~6 years, slowly migrated from a RasPi that corrupted all the time to a Windows Box VM which has been super solid for 2 years but I haven’t kept up with updates (still on v0.110.5)
Now running on a NUC8i5BEH with non-gui ubuntu with a few docker containers.

I see in the docs that since I’m running in a container I have to run a Zwavejs2Mqtt server (Option 3). Pardon my french but this sounds like a bleep-ing mess. Is this really necessary for my install? I’m not a linux guru and barely get by copying and pasting commands so I’m not looking to make things more complicated for myself. Ideally whatever I set up I’d like to last a year or two without much maintenance Using MQTT sounds like a horrible band-aid that could be obsolete soon and I’ll be in the same boat a few months from now. The link to setup instructions is already broken in the docs…

Should I be trying to use this new Z Wave JS integration or should I set up one of the “deprecated” ones?

I’ll be honest I’m a little confused what the difference between running a docker container versus using Home Assistant OS. The OS can’t run inside a container? I’m running a few containers on this NUC and I’m done dedicating a piece of hardware to HA.

Here’s my Z-Wave use-case:
-36 nodes
-Majority are HomeSeer switches/dimmers and I’ve suffered from this lagging/wrong state changes for years
-some Zooz power monitors
-some ecolink window/door sensors
-a couple motorized window shades and remotes
-primary use is basic on/off control and using the multiple-click features on the homeseer swtiches to trigger automations

Is there a good reason to jump through the hoops of setting up Z-Wave JS? Doesn’t sound like it fixes the HomeSeer issues so I may just stick with the Z-Wave (deprecated) integration unless there’s a good reason to switch?

Appreciate any advice, TIA

I think a VM over linux is the way to go. This is me and may not fit your use case.

Here is my reasoning for running a VM.

  1. It is portable - I can back the VM up and it can move to a similar machine
  2. It is supervised and easier to maintain IMO.
  3. I run on old server hardware with linux. supermicro w/ 2 dual xeon processors and 32 gig memory. If my server dies, I can spin up a version on another server in short time.
  4. It supports everything I want to do.

I run js because

  1. js is superior to deprecated versions. It is faster and has good support (not perfect).
  2. I don’t run mqtt. I don’t fully understand it.
  3. I come from homeseer background and js just made sense to me.

I have 89 nodes and z-wave js has made my system much more stable. My HS switches do not have double and triple tap support. GE/Jasco does. I’ve rarely want double and triple tap because I can’t remember what switch does what. Even when I was with HS I didn’t use it much for this reason. YMMV!

I use shelly as well and they are good for everything except n-way switches.

The deprecated versions are going away in 2022.2 if I read the updates correctly.

Hope this helps

This is helpful, thanks!

I do utilize the double/triple/quadruple taps a lot actually - almost every room that has a HS switch also has a smart-bulb lamp or led-strip or some kind of secondary light that I use double-up/down for on/off (old house with limited overhead lighting). Rooms with motorized shades have triple-up/down for raise/lower the shade too. 10x faster than pulling out the phone but understand it’s not for everyone.
If you’re interested, to get it working in v0.110.5 I had to modify the zwave config file

If I can’t use double/triple taps in JS, that’s going to be a no-go for me.

I haven’t ever run a VM from a non-gui linux install - would you be able to recommend one? I’m trying to consolidate hardware and I’m keeping a Windows box around just to run HassOS in VirtualBox right now. It’s working flawlessly except when windows decides to update of course.

I followed this great tutorial and now have a HA-OS VM instance running and my z-wave stick installed with Z Wave JS so we’ll see how that works out.

If you are running vanilla Debian Bullseye you have the option of running Home Assistant Supervised. IMO the bleeping mess of having OZW, with its poor device database, installed directly in HA was what drove me away from HA several years ago. I got tired of updating my OZW device database every time I upgraded HA. I am completing my move back here BECAUSE of zwavejs and zwavejs2mqtt.

HA was forced to move away from OZW when its sole developer decided to stop supporting that project.

You do not say if any devices are included securely. If they are, you would need to convert your OZW Security Key. Otherwise, the Z-Wave network is stored on the controller. zwavejs will just discover the devices from the controller & interview them to get model information to add parameters from its device database. Integration wise the HA devices & entities may be renamed. I have not tried the recent migration script but from what I have seen here, it is not bulletproof.

The old deprecated integrations are no longer maintained. Likely HA will remove then entirely within the next six months so they would no longer be an option. Either move now at your leisure or move later when forced.

I use docker

I run this Homeassistant container
homeassistant/home-assistant:2021.12.5 currently

This container for ZwaveJSmqtt
zwavejs/zwavejs2mqtt:6.2.0 currently

There is NO super difficult advanced config file to setup for the zwavejsmqtt
Just create folders on server and basically run the docker run command they provided.

Setup was no big deal. ZwaveJSmqtt connect using integration below
This was setup in the HA UI by adding the ServerIP/port. ZwaveJSmqtt actually connects through websocket, Not mqtt.

I run Portainer to allow me to easlily update containers and it is also good way to see live log or login container if issue occur during updates (I have had none with these).
I use portainer/portainer-ce:2.11.0 image currently
Updates take aprox 30 seconds(the time for download) and are effectively single button push.

As an extra step. In portainer under “Network” tab of container I set the “Hostname” for each of the docker containers. This allow you to use Hostname:port when setting up the integration in HA instead of IP:port to prevent connections problems if docker ip changes. I also Do Not use Host networking (my preference but others use it so …).

All this runs on Ubuntu server. I used debian in past and literally no difference.

Name your devices in ZwaveJSmqtt and they will map better to HA
I name my Front Door Lock, Front Door or Front Door Lock in zwave JS.
HA will make this lock.front_door or lock.front_door_look and give it name Front Door Lock. If you using HA a while you likely understand that gibberish.

Also I can restart HA or ZwaveJS independently and they reconnect seamlessly without error. These connections Do Not require some huge management to maintain and keep working.

1 Like

If you enable the WS Server for HA in zwavejs2mqtt you can use the zwavejs Integration directly without Mosquitto or MQTT. Previous attempts using MQTT found it too limiting for Z-Wave.

Yeah. was just editing my post for that :smile:
Just remembered. My ZwaveJSmqtt Does Not use MQTT. It actually connects by websocket and I disabled mqtt. Mosquitto was not needed for zwave to function. I use mosquitto for other integrations.

1 Like

Okay this is maybe where I got misled - the name “ZwaveJSmqtt” made me think I was going to have to redo my entire z-wave network as MQTT automations or even if it’s using mqtt in the background it sounds unreliable (never had good reliability from MQTT in the past and got rid of all my MQTT devices)

I’m up and running with HAOS in KVM and so far so good, slowly migrating over all my entities now then automations. Not perfect since it’s an entirely new set of “virsh” commands I will forget in a week and have to re-learn every few months :joy:

I struggle with HA because I’m really looking for a set-it-and-forget-it system that can update without breaking old things. I wish I had more time to play around with new features and update regularly, but just don’t have the time. I’m off work this week so hopefully I can get everything running nice again and not touch it for 6months+
I might play with my docker instance with ZwaveJS2mqtt but now that I can decommission the old windows box, I’m happier than I started, really appreciate all the advice!

Looks like the Zwave JS won’t be as simple of a migration as I thought.
When I plugged in my Zwave stick and configured it, all my nodes came up (without their names) but it doesn’t look like I can control any of them - however it does show the correct state if I manually control the switch. This is the correct Device Info, but the “Controls” tab does nothing.

Without the OZW logs I’m pretty much lost. Probably just need to read the new docs but any tips are appreciated :slightly_smiling_face:
I didn’t input any keys when I added the ZWave JS integration in the UI. All of these are “ZWave+” devices so maybe that’s my issue?

Edit: Looks like I wasn’t using a key before, it is set to ‘null’ in /config/.storage/core.config_entries
Old OZW Log:

2021-12-29 21:49:41.038 Always, OpenZwave Version 1.4.3469 Starting Up
2021-12-29 21:49:49.469 Info, Setting Up Provided Network Key for Secure Communications
2021-12-29 21:49:49.469 Warning, Failed - Network Key Not Set

Edit2: A healthy restart of the VM seems to have fixed it. Could be I just wasn’t being patient enough letting the Zwave network start