Z-Wave Stick Migration (via Z-Wave "Controller Shift" feature)

As I start preparing for my migration from 1.8 to 2.x, it strikes me I still haven’t migrated my Z-Wave controller from the Aeon Z-Stick S2 to the new Gen5. I’ve been avoiding that because I have a few devices in hard-to-reach places, but maybe it’s best to migrate hardware before migrating software. I know the best procedure is manual, exclude/include each device, one at a time.

BUT has anyone actually attempted a “Controller Shift” as documented here: https://aeotec.freshdesk.com/support/solutions/articles/6000129218-perform-a-controller-shift-to-change-primary-roles-using-2-z-sticks-

If so, what was your experience? Did it work? Did it only work partially?

@idean, did you complete migration from your S2 to your Gen5? I’m hoping to do the same thing, I have an S2 that I’d like to migrate to a Gen5 without having to exclude all my devices from the S2, associate with the new Gen5 and then rebuild all the things in the PaperUI and relink them to items.

I’ve opened a helpdesk ticket with Aeotec and they’ve suggested that I can do a controller shift by associating the Gen5 with the S2 network, placing the Gen5 in learning mode and then initiating a controller shift on the S2. However, in the back of my mind I have a memory of reading that this will result in the Gen5 having a high numbered node ID. Not usually a problem except that I use a couple of minimotes in my system and these specifically need the controller to be node 1 as detailed here by @5iver Aeon Minimote requires primary on node 1

I’ve replied to the helpdesk ticket to ask about the node 1 issue, I’ll post any further info here.

The easiest way to get the Gen5 on Node 1 would be to backup the S2 and restore to the Gen5. BUT, it doesn’t look like the backup software works for the S2, so that won’t work. Here is the only other option I can think of. This is scary to do without a backup, and if it all goes wrong you will need to rebuild your network! Aeon Labs support helped me out a lot, maybe they have a simpler option.

  1. Add the Gen5 to the network
  2. Shift it to Primary (I used Zensys Tools).
  3. Set the Gen5 as SIS and SUC. I don’t recall exactly, but I think the original Primary displays as RealPrimary or RealNetwork until I fiddled with SIC/SUC until it moved over to the second controller. Sorry, I’m not sure of my exact method and I don’t know if this is really needed, but you definitely need SIS and SUC on the Gen5.
  4. Pull the S2 and reset it (this should leave Node 1 in the network)
  5. Include the S2 again and shift it to Primary and SIS/SUC as in 3
  6. Pull the Gen5 and reset it (I don’t think you can exclude a primary or secondary controller)
  7. Send a NOP to Node 1 (you have to type 1 into the text box). This should fail, but I’ve had to send it more than once at times. It goes quicker to click the Queue Overrided check box for the node.
  8. Select Node 1. Do an IsFailed check. This will mark the node as failed.
  9. Do a Replace Failed and press the button on the Gen5. This will include the Gen5 as Node 1.
  10. Shift Primary and SIS/SUC to the Gen5
  11. Send a NOP to the old node that the Gen5 was on. Select that node and do an IsFailed, then Remove Failed.
  12. If you’re leaving your S2 as Secondary, you’re done. If not, pull it, reset it, and repeat 11 for that node number.

I would have done this to get my HUSBZB-1 in at Node 1 to get my minimote to work again, but I had already removed the original primary. So there was no Node 1 to restore to and I had to include/exclude until the nodes rolled back around to Node 1.


Ingenious! I like it! Move the network back and forth to the S2 to leave node 1 free and then slide the Gen5 into the now available node 1. Thanks for the advice.

I think I’ll buy a second Gen5 so that I don’t have to toast the config on the S2. That will give me a measure of safety should anything go wrong and it’s good practice to have a backup stick anyway.

The adivce from Aeotec on the helpdesk ticket was to move the network back and forth between the S2 and the Gen5 until the Gen5 became node 1. What’s the max node number in the ZWave spec? 255? I’d have been doing that for hours waiting for the node number to overflow from 255 to 1 with no guarantee that the Gen5 would be the controller that happened to be set to node 1. It would depend on whether the highest available node number when I started was odd or even.

You may want to consider the HUSBZB-1. The zwave internals are basically the same as the zstick, but you have the option to use zigbee. And the Aeon Backup tool works with it, so it’s an easy migration from a Gen5 zstick. And costs less too!

  1. If you need to roll, which you shouldn’t need to, the minimote is a good device for it. Resets and includes fast. Once at 232, grab the new controller.
1 Like

No, my priorities changed a bit due to a remodeling project that’s taking every free moment of time that I’m not at work.

I’m glad you seem to be having luck and I plan to plagiarize your work in the future!

I had a little time to myself this afternoon to try the migration and took some notes on my adventures so far. To recap, my goal was to migrate all config from an Aeotec USB S2 to an Aeotec USB Gen5 and have the new Gen5 as primary controller on node 1. It needs to be node 1 for my Aeotec minimotes to work. The story so far:

  1. Plugged one of the new Gen 5s (I bought two, one to use as the main controller and one as a backup) into a USB port on my laptop, started Zensys Tools (henceforth referred to as ZT), went to menu option Categories->Settings, detected the USB device and clicked apply. Node 1 appeared in top left window.
  2. Plugged S2 into second USB port, started ZT, went to menu option Categories->Settings, detected USB device (both ZSticks appeared in list), selected it and clicked on apply.
  3. With both copies of ZT running tiled side by side on screen I clicked on the NW Inclusion button (the first menu option on the left) on the ZT controlling the S2.
  4. On the copy of ZT controlling the Gen 5 I selected node 1 (the only node) and on the top right window I clicked on the learn button (looks like a lightning bolt/spark) to put the Gen 5 into learn mode. A few seconds later a new node appeared at the bottom of the list of nodes on the S2. Also, all the nodes that were stored on the S2 (i.e. my entire existing network) appeared in the list of nodes on the ZT for the Gen5.
  5. I then quit both copies of ZT and unplugged both the S2 and Gen5 for no other reason than I wanted to quit while I was ahead at that point. :slight_smile:
  6. I then plugged both sticks back in and started ZT for both. On the S2 ZT I clicked on the shift button in the top right window, on the Gen5 ZT I clicked on the learn button. After a few seconds a popup appeared stating that “No random data received, maybe radio was blocked.” I’ve no idea if this was a problem. At this point the S2 network role in the top right window was now “Secondary, OtherNetwork” and in the Gen 5 ZT it was listed as “RealPrimary, OtherNetwork”

At this point I had the new Gen 5 as the primary controller on the network with a node id of 42. My goal was to have a Gen 5 as node 1.

  1. In the Gen 5 ZT I selected the Gen 5 node in the top window (in my case node 42) and set it as SIS using the Set SUC/SIS button (looks a bit like a trident, a yellow blob at the bottom with three smaller blue blobs radiating upward), this resulted in the Network Role being set to “SUC, RealPrimary, SIS, NodeIDServerPresent, OtherNetwork”.

At this point I wanted to plug the Gen 5 into my ESXi box and see if it worked (knowing that the minimotes wouldn’t work because the Gen5 wasn’t node 1), I plugged it into the USB3 hub connected to the ESXi box, the same hub that the S2 was plugged into and… it didn’t appear as a device that could be added to the OpenHAB VM. After much unplugging and plugging, rebooting and headscratching I plugged it into the USB2 hub and it appeared straight away! Bizarre!

I’ve run out of time tonight. If I get time tomorrow I’m going to attempt the final steps which will be to flag node 1 (the old S2) as failed and do a replace failed with the second Gen5, then shift from the first Gen5 to the second Gen5 as Scott described above.

(Then all I’ve got to do is somehow configure the Ubuntu VM that’s running OpenHAB to give persistent names to my USB devices. Some times the Gen5 is ttyACM0, sometimes it’s ttyACM1, but that’s another story…)


Hi Scott,

thanks for your great idea. Unfortunately I cannot get Node 1 to be marked as failed.
I alread sent numerous NOPs to it and they all failed, but when I press Isfailed I always get " Selected Node is normally running…"
Any hints?

Were you following the steps in post 3?

Is the S2 unplugged?
Did the NOP fail (it will need to fail before you can do the isFailed check)?
Are you selecting Node 1 before clicking isFailed?
And have you tried the Queue Overrided checkbox when sending the isFailed?

Yes, the S2 is unplugged. The NOP failed about 50 times… :wink:
Yes, I selected Node 1. The queue overide checkboxes are greyed and all are checked.

Wow… sounds like it’s pretty well stuck. I’d shutdown Zensys Tools, unplug the zstick, and reboot. Zensys Tools is not very stable.

I am working with two different Stick at the moment which I transfered a memory dump to with the aeotec backup tool. (The messed up live one is unplugged for now)
I have a primary on Node 134 and one secondary on node 2 at the moment. I will try to reset node 2 now. Then I will try to remove node 1 and 2 from the primary. And try to get the reset stick to be my new 1.
I’ll keep you posted.

Don’t remove Node 1 if you want to use it later.

Sorry… I’m really confused. It sounds like you had an old gen5 die, so you restored from backup. This should put the new stick on Node 1 with no need to shift primary->secondary.

Thanks for the hint. Now which buttons should I press in which sequence to get node 1 replaced with the proper stick?
Ok I will explain what I am trying to do.

  1. I just backuped node 134 which is my actual primary now. The role is RealPrimary, SUC, othernetwork. (This is UZB1 btw)
  2. All buttons in this Zensys Tool are active, I could press replace for any node.
  3. I will reset the Gen5 Stick to factory defaults.
    What should i do now? Normally I would set the gen5 to controller lean mode and press add on the UZB, but I cannot replce and Add at the same time. How do I get it to replace node 1?

OK… let’s see…

Your current functioning Primary is a UZB1 on Node 134, your secondary is a gen5 zstick on Node 2, and you want your gen5 zstick on Node 1, but you can’t mark Node 1 as failed?

If this describes the state you are in, reset the zstick, then send NOPs to Node 1 (which need to fail), then select Node1 and click isFailed (which should say it is failed), then click Replace Failed and press the button on the zstick to include it. It should now be Node 1. Then shift it to Primary.

Just to explain the confusion:

Yesterday I tried to follow your receipe. (Going from gen2 to Gen5)
That went well, I added the Gen5 as second controller, shifted to the Gen5, made it SUC and reset the Gen2.
So far so good, I had a new Primary on the gen5 but on node 134.
The I tried to add the reset gen2 to the network again to free Node 1 but instead of getting a new node it got included as node 1 again.
This was odd but I realized that resetting the Gen2 didn’t geneate a new homeiD. So it got added to node 1 again.
The I tried to shift back to node one. With that shift, I lost the SUC information in the networ and I couldn’t get another Shift because the button was greyed out from that time on.
I then manage to patched the backup I could make from the Gen5 SUC,Secondary again. That pached backup is restored to the UZB.
I then could use CreateNewPrimary on the UZB to get at least a Primary Controller again.
That’s where I am now…

To me, this sounds like the S2 was never actually reset. I don’t have one, so don’t know the procedure. But sounds like you’re passed that anyhow. :wink:

Does 134 have both SUC and SIS? And are both the zstick and s2 unplugged? What’s Node 2?

No the UZB Node 134 doesn’t have SIS, it shows as SUC, RealPrimary, OtherNetwork.
When I try to set SIS as well, IO get an error: SetSuc return value = SucSetFailed…

Nevertheless my main problem is: What buttons should I press to replace node 1
I got it failed, pressed “replace failed node” I get a Dialogbox Waiting for…"
What should I do with the Gen5 stick in that stage?
Pressing “start learn controller mode” only results in the sticks not communicating.
I deleted Node 2.

In looking back at the steps in my post, this is not very clear. The easiest way would be to press the button while it is unplugged, which puts it into inclusion mode and will join it to the network. But without an SIS, I don’t see how you can successfully include anything.

Hi Scott,

I did it!!
Thanks for your help.
What I did:
I deleted Node 1 and Node 2 using the “delete failed node” button on the UZB.
Then I made a backup of that stage.
To get my Gen5 sick to node 1 I did the following:

  1. Open the backup file in a HEX editor.
  2. Changed the Byte on address 0x1fc8 to 0xE8 which is 232
    (That cell holds the last given Node ID so the next node will get a 1)
  3. Wrote the patched backup back to the UZB stick
  4. Put the reset Gen5 into another instance of the Zensys tool
  5. Pressed the “Start Learn mode” on the controller tab of he gen5
  6. Press the “Add Node” button und the UZB Zensys Tool.
  7. The network get transferred, the new Node of the Gen5 is now 1 !
  8. Press the shift button on the UZB Zensys Tool
  9. Primary is shifted to the Gen5

I am happy!
Thanks again for your help.
Have a nice Easter Weekend!

1 Like