Switching from Zwave 1.4 (Deprecated) to Zwave JS

I’ve started renaming things. It’s a little time-consuming, but it is faster than deleting and re-adding everything. Thanks to everyone for putting this together!

1 Like

I have converted everything. It went well.

I have another question. How do I edit Z-Wave parameters for devices. (Things like when the LED is on or ramp speed of dimmers, etc…)

Thanks all!

That’s coming soon. Unfortunately, it doesn’t exist at this moment. It’s should be in the next release if it isn’t in one of the update’s over the next month

1 Like

Any chance we can flesh this out a bit for those not using a supervised instance? The zwave-js documentation isn’t super-clear about what is getting installed and how to set up the server manually. For example:

The zwave-js quickstart page installs zwave-js from npm but then discusses loading the module and creating/starting an instance within software… so I’m not sure this is what we want here.

The installing from github page shows how to build a specific version from sratch so this is possibly what we want.

The HA zwave-js page shows advanced installation instructions with a link to a server wrapper, but indicates all of this is a “very advanced use case” and out of scope for official documentation. Fair enough, but I’d like to work through this.

I’m guessing the equivalent to “install Zwave JS add-on” will be:

  1. build and install zwave-js.
  2. build and install zwave-js-server. Configure to auto-start.

I’m fine fleshing out the details here as long as I’m understanding the required steps. Has anyone already been through this process?

1 Like

Thanks for your work on this guide.

While we await the integrated way to manage the network that is coming soon, I presume it’s not safe to try and run ZWaveJS2MQTT (websockets) to do this alongside Zwave JS ? - as they will both want to access the USB stick right?

Yes, one or the other

1 Like

:wink:
I found it in .storage somewhere, by searching for z-wave.

After converting to Zwave JS and finding no interface to config zw devices, I went to zwavejs2mqtt.

One thing that is kind of missing on the overview of options page is which one is the “best” future option. Are Zwavejs and zwavejs2mqtt the same (eventual) code or is one going to either win out or be most likely to get updates first?

Thanks.

2 Likes

This guide worked for me. The only thing I would like to add is that I installed ZwaveJS2MQTT add-on rather than the official ZwaveJS. After installing it, starting it and going into it’s GUI settings to set the serial port and network key, I then restarted the add-on. You can then watch your devices show-up in the GUI for that add-on. It took maybe 5mins for all my devices to show full info. I only have 8 Zwave devices though.

I’m in the same boat as you, I run HA in venv. I think you are on the right track- build or install nodejs/npm install and configure zwave-js at the OS layer. Once it’s up and talking to your zwave stick you point HA to the zwave-js-server:3000. It’s not super obvious to me from the docs where/how you specify your path to the stick (https://zwave-js.github.io/node-zwave-js/#/api/driver?id=zwaveoptions) and whether you need to specify other options in there too.

This wasn’t on my radar until I upgraded to 2021.2.1 and noticed that none of my zwave stuff was working, not quite sure what happened there as I don’t think that is the expected outcome. I went back to 2021.1.5 and everything is fine again. I’ve gotten as far as installing nodejs and npm but haven’t had a chance to really play with zwave-js stuff yet, let me know how you do with this.

1 Like

Nothing with the legacy zwave stuff changed. It’s likely that something else was causing problems in your system. You don’t need to migrate if you don’t want to.

Just switched my setup over. I don’t have many devices at this time (the number is growing) so not a big deal to rename. As it turns out, it was a good exercise for me since I wasn’t sure how to rename anyway, learned how to do that. Now everything is nicely named and working great.

Sorry for the off-topic. My understanding is there are talks about releasing an automated Zwave 1.4 to Zwave JS migration tool …as a replacement for the current Migrate to OpenZWave option in our current depreciated Z-wave integration. Is there any way to follow the progress of this tool on Github?

I wouldn’t mind using this guide if I only had a handful of z-wave device entities… however, in my case, I have too many to rename one by one manually; even I have a text file showing the old entity names.

It would be great to automatically use/add all the old zwave entity names in the new Z-wave JS integration.

1 Like

Because the 2 systems have a different backend, the likely hood of 100% automatic translation is low. A migration tool is planned, but it will not work as well as the openzwave migration tool. The openzwave migration tool works so well because the backends are the same (openzwave 1.4 -> openzwave 1.6).

This migration tool would be moving from openzwave -> zwave_js, 2 totally different backends. So, regardless how you look at it, you’ll have to spend time messaging the end output.

I only have 29 Z-Wave devices, but using the instructions, It wasn’t terrible. (I ended up doing it twice.)

I had the old stuff saved off.
I clicked the devices link on the Z-Wave JS integration.
Clicked one of the devices.
Noted the Z-wave node and looked it up on my saved stuff
Copied the main entity I cared about into my paste buffer
Clicked the gear - upper right
Typed the name
Selected the area
Clicked update, had it update all
Then I clicked the entity I cared about (mostly for automations and dashboards)
Triple-click the entity ID
Pasted what I copied before
Fixed the name of the entity (Mostly just shortened it to the name of the “thing”.)
Hit back twice to get to the list I started with
Repeat until everything has an area.

Took maybe 30 seconds per entity.

I know it sounds like a lot and it is a little tedious, but compared to removing everything and re-adding and then rebuilding all the automations and things it’s not that bad.

If i install zwavejs2mqtt, is that really all that I need? I’ve tried it both with “disable gateway” checked and unchecked, but the devices won’t appear in HA.
WS Server is checked.
In MQTT Explorer, the devices look like this:

zwave
    nodeID_1 (1 topic, 1 messages)
    fibaro_wallplug1 (44 topics, 44 messages)
    nodeID_14 (1 topic, 1 message)
    etc.

What must I do to get the devices and entities into HA?

If I go the ZWave JS integration way, how do I rename devices?

See my previous post on renaming devices. It is the same with Zwave JS or ZWaveJS2mqtt.

I installed zwajs2mqtt and then ran the web interface and entered the usb path and the network key under settings (following the instructions for the add-on.)
Then I added the integration (again, following the instructions for the add-on.)

unless you want to use mqtt then you have to install the zwave js integration.

it’s the back bone of how HA communicates with the zwave js server.

If you do only want to use mqtt then you need to properly set up zwavejs2mqtt and HA for device discovery.

if you want both then you need to do both.

How are you guys optimizing the renaming process for those zwave devices that have multiple entities?
Let us take a Fibaro FGS-223 as an example: it has two switches, two power sensors, two energy sensors, as well as a bunch of other entities.
The device ID number is simply not enough to pinpoint the right entity for these cases.

And by the way, does this new addon generate entries in the .storage/core.entity_registry file? Wouldn’t it help to rename entities directly here instead of using the GUI?

Or just replace the network_key that zwave-js generates with ‘’ (empty quotes) and restart it