A bit more info that you didn’t ask for…
the way I did it was that I got as much info on my existing old zwave network as I could - nodes, entity_ids for all the different functions, friendly names, etc. I also set all of the battery powered devices that I could to a short wake-up interval. I set mine to 3600 seconds (1 hour).
And I also added a customization to the old zwave entities to say that the integration zwave:
homeassistant:
customize:
binary_sensor.foyer_door_sensor:
device_class: door
integration: zwave
then later I added the same to the new entities except it was “zwave_js” instead of “zwave”. I used that info later to make sure I didn’t forget any entities. It actually came in handy too.
I installed zwavejs2mqtt but didn’t start the container (I use docker and not the add-ons but the same concept applies). Don’t install the zwavejs integration at this point. Just get the zwavejs2mqtt addon or container installed. Again don’t start the add-on/container yet.
Go to your deprecated zwave integration and from the control panel there stop the network.
DON’T REMOVE THE OLD ZWAVE INTEGRATION!! JUST STOP THE NETWORK!!
Don’t restart HA!!
then go to the zwavejs2mqtt add-on/container and start it.
add all of the configuration info in the web app itself (IP: mine was port 8091 but I think the default is 8090).
once you save the config it should start discovering mains devices right away.
after those devices are found and the interviews complete then you should wake up any battery powered devices. Or if you have the time you can just wait for them to wake up on their own in an hour.
if you wake them manually wait for each device to be discovered and the interview to complete before moving to the next one.
Try to wait get everything interviewed by zwavejs2mqtt.
after everything that can be is showing up in the control panel for zwavejs2mqtt (I had a node or two that wouldn’t) then you can turn off the zwavejs2mqtt add-on/container and the restart your old zwave integration if you want and everything will go right back the way it was before you started the whole process.
At this point you can stop the old zwave integration and turn on the add-on/container as much as you want without anything getting messed up. Just make sure that they aren’t both running at the same time (turn one off before starting the other) and never restart HA while the old zwave integration network is stopped. I’m not sure if anything bad will happen but I never wanted to take a chance and so I never did.
Again if you get stuck and run out of time trying to figure it out the just stop zwavejs2mqqt and restart your old zwave network. Easy!
I went back and forth many times while getting everything switched over and never had any issues.
I also recommend that you now go into the zwavejs2mqtt control panel and start renaming your devices there before you add the zwavejs integration to HA. That way when you do then the devices will come thru to HA with a somewhat meaningful name.
Now at some point you will install the zwavejs integration.
you need to make sure the old zwave network is stopped and that the zwavejs2mqtt add-on/container is running before you install the zwavejs integration.
At that point you should see all of the zwave devices populate in the zwavejs integration in HA (they will be there in addition to the devices from the old zwave integration since you still have it installed…right?).
Then you can start the process of renaming your new entities to match the old entities. However you can’t make the entity_ids match exactly at this point since the old ones still exist. The way I handled that was to rename the new entities to the same as the old entities but just added a “_js” to the end. Now I know which are new and which are old.
Then when I finally had everything the way I wanted it with zwavejs2mqtt (which took a few weeks of going back and forth between the two when I had the time since I could do it at my leisure now) I stopped the old zwave network and renamed all of those old entity_ids and added a “_ozw” to the end and then removed the “_js” from the end of the zwavejs entities.
Now all of the old existing system works seamlessly with the new entities since they are now exactly the same as before.
Once you are satisfied that zwavejs is working fine then you can remove the old zwave integration.
Oh, and at some point you may have to re-pair the devices that didn’t get brought over automatically. As i said I only had one motion sensor that I ended up needing to re-pair after I switched to zwavejs completely.
I hope this helped and didn’t confuse things any more.