Is there a way to export your nodes from 700 Series USB stick and then re-import them with the 800 Series USB Stick when using zwavejs?
I have tried exporting nodes and importing them but I think it might be more than just a simple export/import. That or do I just need to go and include all the devices on the new USB stick?
No. All of your nodes are stored on the NVM of your controller. To migrate your nodes from one USB to another you need to backup the 700 NVM and restore it to the 800 nvm. Last time I checked you can only do this in the Z-WaveJSUI addon or the PC Controller Software. Also the 700 series and 800 series need to be on firmware 7.19.2. The official firmware for the Zooz sticks is on 7.18.3 but Zooz is working on the new firmware.
Some users have installed other firmware on the files to get it to work.
If you really need to migrate everything over. There is a hack where you include one controller as a secondary controller using the PC CONTROLLER software. It is explained in more detail here.
The new Z-Wave JS release fixes the NVM backup and restore issue. I have tested this and was able to successfully migrate from the ZST10-700 Series Controller to the ZST39 800 Series Controller. Must upgrade to the following versions for this work.
zwave-js-ui: 9.9.0
zwave-js: 12.4.4
This guide is no longer needed.
Since the link is really popular I thought I’d share a video I made. It is a the same exact instructions just in video format.
Thanks for putting this together. I have two questions. First will this work for any 700 series controler (i.e. migrating from a Aeotech Z-Stick 7 to a Zooz ZST39LR)? Second, once you’ve completed this process is there anything that needs to be done on the Home Assistant side, or do you just plug it into the server, boot it up, and all your devices are there?
Yes this will work with any 700 series controller and no you don’t need to perform any extra steps if you were already using home assistant. Just plug the stick in and you will see all of your devices.
Left a comment on the video itself but thank you for putting this together @cornellrwilliams
I’ve seen another similar guide but that one suggested flip flopping controllers back and forth over and over again until the new controller landed on node ID 1, which to say the least, can be extremely tedious. I really like your approach with the virtual nodes.
Assuming we have a NVM backup of our 700 stick before we start, in theory we should be okay and have a means to get back should things go pear shaped right? I don’t think any of the steps in your video would make any actual changes to any of the nodes on the network so I would think the original backup should always be a fallback option if I am not mistaken.
I think I am going to give this a shot with some spare sticks I have first in a small lab setup. Really want to migrate to my ZAC93 but I think I’ll need to work out the UART pinout and get it connected via a USB adapter first to do so.
I just completed the process @cornellrwilliams put together and I was successful. A couple of notes based on my experience:
When trying to Shift from one device to another it failed the first time each try with one time actually crashing the application. I ended up restoring a back up to the source stick and resetting the destination stick (both of which were done previously) and that got things to move along. I suspect it may have been an issue with the USB hub I had the sticks plugged into but even when moving them to the mobo ports I still had issues. Second, when plugging the new stick back into the HA server I needed to change the usb port in zwaveJS because the new stick was assigned a different location. After that everything worked.
Thanks again @cornellrwilliams! Hopefully this will resolve the dreadful zwave performance I was experiencing with the 700 series stick.
Unfortunately migrating to the 800 stick did not resolve my Z-Wave stability. I’m still seeing devices drop off and need to be pinged to get them back online. At this point I may dump Z-Wave altogether and just use all zigbee/thread devices. Those seem to be much more stable.
Just have home assistant ping problem devices when they drop. Zigbee is certainly not more inherently stable than zwave. Devices are also functionally limited, and 2.4 ghz is the wrong frequency for typical home automation devices. Your focus on changing controller was very unlikely to fix the problem.
A few, usually more complex, zwave devices are problematic. Zwave JS does not do recovery of drop nodes as well as Vera and Homeseer in my experience. I have a zooz 32 that drops a few times a week with zwave JS. The exact same device was never shown as offline in Homeseer. It probably did drop with Homeseer, but that system did its own ping.
I do still like zigbee and will keep expanding my system. But it is inferior to zwave in all ways except the availability of cheap devices.
Thanks for this @cornellrwilliams . Had a bit of back and forth with the controllers with Shift & Learn, but having the NVM backups let me keep trying. Got everything migrated from Zooz 700 to 800.
I there no way to manually set the node number to 1 after the shift? Seems odd that the software wouldn’t let you do that instead of having to add a bunch of virtual nodes to “loop back to the beginning”.
Just a heads up I moved nodes from a ZST10 to ZST39 (both SDK 7.19). It was hassle, something about the controllers or SiLab software made it really difficult.
If you’re struggling, soft reset or replug your controllers between each step. Otherwise there is stale data on the controllers and they don’t act as per the instructions/video.
Suffice to say I am now on the ZST800, the only major issue is I had to re-pair a legacy S0 device (guessing something weird about the S0 didn’t like the migration).
I had some of those recently as well, and they are always the cheap Minoston power plugs. My other 50 devices I had running for 5 years never dropped. Pairing them with no security reduced the drop out to about once a month. You can also set up an automation to ping the device that drops out in HA automatically.
I just want to confirm. I only have 5 devices, it may just be easier to remove them, remove the 700 series stick, put in the 800 series and then add all the devices back and name them as they were.
Am I missing anything? Can the 800 series stick go back in the same USB port without any new configuration in home assistant (other than adding all the devices back)? I assume if I rename everything correctly, my dashboard and everything will keep working.
Yeah thats probably easier, you’ll need to pick the different stick in settings as it will have a different usb identifier, but apart from that it not much to do esp if you are going to re-associate everything again.
This post was long ago, but some comment for HomeSeer - in my experience it doesn’t check device availability altogether (at least HS4). I had experience that dead or malfunctioning node was showing as alive and I still could switch it on or off in the interface (of course without any effect in real).
That was one of the biggest disadvantages of HS4 for me - you never knew if everything is OK in your network or not.
HA is a bit too sensitive to small malfunctions in the network, but I did an automation which pings a device whenever its status becomes “dead” and that works most of the time.
@cornellrwilliams, during the migration, the Node ID’s of devices are kept the same, or they are newly assigned by the new controller during the migration?
I wonder if I can use this method to merge two z-wave networks I have into one, but I doubt how the nodes with same ID’s will be handled during such process?
For example if I have node 4 on the controller A and also node 4 on the controller B, when I move nodes from A to B, the Node 4(A) will get new ID on controller B, overwrite the node 4(B) data, or will be not moved at all?
During the migration, the Node ID’s of devices are kept the same.
Every device in a Z-Wave network has the same home id and a unique node id… The home id and node id are only assigned during inclusion. No matter what changes you make on the controller the home id and the node id of the end device will never change unless you reset or exclude the device.
I wonder if I can use this method to merge two z-wave networks I have into one
You cannot merge two Z-Wave networks together. When you try to add one controller to another network its settings getting erased and it changes it home id. As I stated earlier The home id and node id are only assigned during inclusion. No matter what changes you make on the controller the home id and the node id of the end device will never change. So if you wanted to add a device to the new network you would have to exclude it the include it into the new network.
Thanks for the explanation.
So if I have two networks and want to migrate them to the 800 stick as an end result, I probably should do a controller shift for the larger network and then exclude devices from the smaller one and include them to the new stick.
Or move (exclude/include) to the one from those I already have, and then do the controller shift.
BTW, I’ve read somewhere that the new firmware allowing restoring backup from older sticks on the ZW800 series will be available in couple of weeks. Is there any disadvantage of shifting controllers compared to backup/restore option?
I’m wondering if it is worth waiting or not.