ZwaveJS controller migration

Has anyone tried to migrate from a 500 series to an 800 series? Do I need to unpair and repair all my devices?

I had to re-pair the devices. I tried the backup and restore of the NVM for the stick but it didn’t work.

There is a backup and restore for the nodes but they’d change with the new stick.

You can do the provisioning entities on the new stick so you could save that list for the future.

1 Like

Is that the smartstart feature?


I’m facing this daunting task as well, and not looking forward to unscrewing 20 face plates to find the PIN numbers. And my HUSBZB-1 doesn’t support NVM export.

I only just learned about SmartStart, but I assume it would only help for pre-loading the PINs into the new controller? Is there any way to generate a provisioning list from existing devices on the old controller’s network?

There does not seem to be any way to take the paired device list and use it to create the provisioning list. The provisioning list can be created at any time, but I believe only with a controller that supports smart start. I think I tried it with my 500 series Aeotec controller and it didn’t work because it doesn’t support it.

I spun up another zwave-js-ui container with the new stick and created the provisioning list. Then, I just reset devices one at a time and let them add to the new controller. Since I put the name and location (same as they already had) in the provisioning list they all added with those and once done they all just appeared in HA again the same as before.

Thanks, I feared as much.

I wonder then what advantage SmartStart would have here. If I’m going to have to go around and either scan or grab the PIN for each device, I may as well go through the regular inclusion process on the new controller.

Well, you can export and save the list so you should never have to do the inclusion process again and the naming of the devices and their locations is really easy to repeat. I also found that just resetting each device was easier than resetting or excluding then doing the inclusion process again.

1 Like

Interesting. I’ll have to look into how to reset them (I’ve got a mix of LZW31-SN and VZW31-SN), but that does sound like a good route. Thanks!

1 Like

BTW, you can upgrade the firmware on that stick to one that supports nvm export. I did it as a prerequisite for upgrading to a 700 series last year.

1 Like

Years ago when I had a SmartThings I used Simplicity Studio for firmware updates. IIRC there was a way to extract the DSK from there.

Edit: Found it!

Would be nice, but I guess that only works with 700/800 series controllers, according to the page. I’m going to be upgrading from a 500 series, which apparently doesn’t support much.

1 Like

I’m doing the same migration from the HUSBZB-1 to an 800s series. I’ll poke around the controller when I get a chance. I know there used to be way.

1 Like

@nairou Success but the process will take a while. I found this old thread by @Bry that still works. I plugged my 800 series stick in my laptop and started ZWave PC Controller. I factory reset the device (did not exclude) a test device and added it to the PC Controller software with S0. Then open the log and look for the public key. In my case it was 0035E2. Ignore and first 00. Convert the 35E2 from hex to decimal. Which give decimal value 13794 which matches the sticker on my test switch! To get the full DSK take the frist 32 character after the 00 and convert from Hex to Dec. I used an OCR reader to extract the text so I didn’t have to painfully transpose the numbers. I then wrote a quick python script to convert from hex to the DSK format. Note only the first 32 characters represent the DSK.

HEX="35 E2 D5 7C 8F 26 A8 C4 BC 64 44 92 C5 F2 E9 C0 B9 7F DA 4C DF BC E7 52 EB 79 25 BE 02 02 D9 70"
HEX=HEX.replace(' ','')
for i in range(0,28,4):
    OUTSTR+=str(int(HEX[i:i+4],16)).rjust(5, '0')+"-"
OUTSTR+=str(int(HEX[28:32],16)).rjust(5, '0')

Here is the validation after removing and repairing with S2!!!

Now that all that is done I excluded the device from the PC Controller Software. I should be able to replace the failed node in zwavejs with the same device.


Very elaborate, but I’m impressed! That’ll be a great resource to have, thank you!

1 Like

Interesting, but it seems way easier to just pull the faceplate off and scan the QRR code.