Which should I use and why? Zwave js or zwave js to MQTT

Sorry for the maybe dumb question but I cant find the clarification that I want online to this question. Im getting ready to install zwave. I have the zooz stick. I see multiple videos and forums posts on how to install either but I cant find the pros and cons to each. Why choose one over the other? Would someone be able to dumb it down for me and layout benefits to each and which is the more commonly installed method?

1 Like
1 Like

I use ZwaveJS2MQTT. Mosly because I installed it before HA had the ability to configure devices etc through the interface.

I do like having the zwaveJS2MQTT interface though, and still use it for setting config parameters, view devices etc.

Ultimately, zwavejs2mqtt gives you all the functionality and control that you get with the plain zwavejs integration, with the added bonus of a different web based UI. The only downside I see is some additional resource usage by running the docker container. So for me, the benefits outweigh the minor downside.

2 Likes

question on mqtt broker logs i get the following

INFO APP: GET /health/zwave 200 1.240 ms - 1873
runs every two minustes ?

Is there an easy way to switch back and forth between zwaveJS and zwaveJS2mqtt? If I remember correctly, the last time I tried that I had to rename all my entities again.

I’m one who installed zwaveJS and now wish I’d installed zwave JS2mqtt, to get its control panel and management features. But I haven’t been able to find a clear understandable explanation of how to make the switch. I see a lot of “ifs, ands, and buts”. It seems at minimum, entity names will change, meaning scripts and automations stop working until you fix everything. And if you don’t uninstall zwaveJS, HA will keep trying to restart it.

You can disable the integration, then switch, and make sure all the interviews are completed. Once the interviews are completed, you can re-enable the integration and re-configure it to point to the z2m WS URL. The entities and devices won’t be lost as long as the integration is disabled and the interviews are complete.

Sorry, that just puts me further into the fog…

You first disable (not ‘delete’) zwaveJS?

Then install zwave JS2mqtt?

How do I know when interviews are complete? Do I have to initiate this?

Which one do you then “re-enable”?

What “URL” is that, and which integration is “pointing” to it?

I’m somewhat in the same boat and a bit unclear on how to make the switch from regular zwave js to zwavejsMQTT. Looking forward to someone helping to clear this up a bit if possible.

1 Like

I’m working on a video for this but let me see if I can give you the highlights.

  • Grab Security Keys from the config of the ZwaveJS add-on

  • Install ZwaveJSMQTT Integration

  • Shutdown the ZwaveJS Add-on, disable the start on boot

  • Disable the ZwaveJS Integration under integrations.

  • Under configuration of the ZwaveJSMQTT Add-on, you will need to enable port 3000. This is disabled by default I believe. Just toggle the switch under network and type 3000 in the file and hit save. Then start the add-on.

  • You will want to enable the show in sidebar option. Then head to the ZwaveJS in the side bar, head to settings, and then under Zwave configure USB Path, and security Keys. Once you save you should start to see your Zwave Devices show up

  • Wait until all the devices has been reinterviewed. The Interview column will say complete when that is done. For battery devices you will most likely have to go around a wake them up. This will be different for each device. The devices connected to mains power should re-interview without issue. This may take some time.

  • Once your devices are all up. You will need to edit some YAML. In your config, under .storage, you will need to edit the core.config_entries.yaml file. Search for zwave_js in that entry you will find a url that points to ws://core-zwave-js:3000 but it needs to point to ws://a0d7b954-zwavejs2mqtt:3000 so just replace it with the new URL. Then set use add-on to false to prevent it from using the ZwaveJS add-on. Leaving it true will cause the other add-on to start even if start on boot is off. Ask me how I know this…haha.

  • Anyway, Save and restart HA

  • When it boots back up head back to integrations and re-Enable the Zwave JS Integration. This should connect and work as it did before. If it gives you an error then look at where it is trying to connect. It may still be connecting to the ws://core-zwave-js:3000 path. If it is then you need to disable the integration, try editing the core.config_entires.yaml again and save and restart before trying to enable that zwavejs integration again.

I am going to try to get a video on this out in the next couple of weeks. Might be three based on the other stuff lined up. But that is the process I did and was able to. migrate over to ZwaveJsMQTT from ZwaveJS.

Only Issue I had was some of my battery powered sensors were a pain to get to reinterview, and one had to be removed and readded.

1 Like

Which should I use and why? Z-Wave JS or Z-Wave JS MQTT?

Great question! I came across this topic asking the same thing after I saw two YouTube videos (one of Linus look at his Z-Wave network) showing this awesome Z-Wave UI that I didn’t have.

I bought a Z-Wave controller recently and set it up in Home Assistant saying “this is Z-Wave JS” not realizing the MQTT part was separate.

MQTT is :man_shrugging::question:

Just like how I use ZHA for Zigbee, I’m using the standard Z-Wave JS tooling for Z-Wave. Since I’ve never used the other solutions, I don’t know what I’m missing, but I also don’t have to deal with the headache of configuring or running those things either.

Convenience > Functionality

This all works out of the box, and while I love to tinker, I need a working smart home, and I would hate having painful upgrade paths because a Home Assistant upgrade broke some hacky tool I was using.

Would I prefer to use the MQTT variants of both of these? Heck yeah. Do I wanna go through the process of possibly destroying my smart home just to get MQTT working? No.

Hopefully, this helps shed a different view on the situation for future folks finding this thread.