Switch ZWaveJS2MQTT to point to 500 series controller
NVM Restore on 500 series controller
The problem I ran into is right after I did step 2 the ZwaveJS integration removed all the devices, which is understandable since the new controller doesn’t have any devices yet.
Is there a way I can pause the integration/sync logic while I’m doing this dance?
Do you have somewhere you can create an image and temporarily install ZwJS2Mqtt to pull the pre convert 500 series backup? Seems many doing it that way so they never need to do your step 2 above, and the process I intend to follow.
The Aeotec tool probably does not work with Gen 7. For Gen 7 they tell you to use the Silicon Labs PC Controller software, which does work. The Aeotec tools is just an old customized version of PC Controller.
Besides that, the NVM formats are different between SDK versions, so there’s a conversion step required when moving between versions. The Aeotec tool and the PC Controller software do not do any conversion.
Also for anyone following along I migrated from an Aeotec Z-Stick 7 to an Aeotec Z-Stick Gen5+. I plugged the Gen5+ into a windows machine and did their firmware update first and then used ZwaveJS2MQTT to do the NVM backups/restores and the tool linked in that GitHub thread to convert the 700 series backup to a file usable by the 500 series stick.
Flash gen 5 stick to current firmware
Turn off websocket in Zwavejs2mqtt
Nvm backup 700 stick
Shut down Zwavejs2mqtt
Swap sticks, determine ByID path for 500 stick
Update configuration for Zwavejs2mqtt
Restart Zwavejs2mqtt
Dont freak out at blank console
Nvm backup 500 stick
Use tool to transfer config to copy of 500 stick backup
Restore ‘new’ file to 500 stick
Verify devices come back
Restart Zwavejs2mqtt (to clear the display bug on incorrect stick)
Turn Websocket back on
Serial Connection
JS2MQTT add-on initially refused to start. (failed to connect to serial) changed to connect to /dev/ttyACM1 instead of by-id. Fired right up (suspect typo in by ID but out of scope for this)
Entity names.
I had used the MQTT add-on to name all devices and areas. During initial connection, Some of my devices added before they named some didnt, so I had a mix of names like
light.ge_inwall_dimmer_2 (Default name)
and
light.living_room_light (Entity changed)
Between the time I added JS2MQTT the first time and now I went through all devices in my setup and added Names and Areas in the MQTT console.
When everything repopulated in HA - the ‘FIXED’ entity names came through instead of the defaults. Now I still have some scene fixing and entity renaming to do now. BUT at least I don’t have to rejoin 70-80 devices. I’ll still call it a win.
I had a problem figuring out how to use the conversion tool. I am a home user with no experiance in any kind of coding . I have always used Windows and premade programs. In reality it is very simple. I used this guide to install Node.js and NPM on my Windows 10 desktop. Then did the following.
Place your NVM backups into the root folder on your windows pc. Mine was C:>users>Bill (I also renamed the backups to 1.bin for the Z-7 stick. 2.bin for the Gen5 stick.)
Open a command prompt on you windows pc
Enter the following code without qutoes "npx @zwave-js/nvmedit convert --source
Change source to the Z-7 backup bin
Change target to the Gen5 backup bin
Change output to what you want to call the output bin.
Mine looked like npx @zwave-js/nvmedit convert --source 1.bin --target 2.bin --out 3.bin
Hit enter
Simple and worked. Converted all my 700 series nvm to work with my Gen5+ stick. Didn’t loose any naming or break any automations…
Thanks for all the hard work it took to write this program to convert these. #AlCalzone
Edit: A explanation on what happens. the “npx @zwave-js/nvmedit” pulls the what I am going to call code from the github (this stuff I am guessing) and then runs them locally to convert your file for you.
Most everyone has been focusing on downgrading from 700 to 500 due to the firmware bugs, but my problem has been the opposite. I’ve been banging my head trying to upgrade from 500 to 700 series with no success (all nodes dead after restore).
Thanks to the amazing Z2M community, it turns out it’s even easier!
I’m glad to report it’s working with the following steps:
Make sure your 500 series stick is on Z-Wave SDK v6.61. In the case of Aeotec zstick 5, this means you need to be on at least firmware 1.2
In Z2M UI, do an NVM backup for both your sticks.
Restore 500 series NVM bin DIRECTLY onto 700 series (bypass nvmedit)
I thought that the instructions on hubitat said that you did not need to update the firmware on the HUSBZB-1 if you wanted only to backup NVM? It claims that only Z-Stick Gen5 Backup Tool is needed. Is that not correct?