Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Take over network from existing controller #7096

Open
AlCalzone opened this issue Aug 12, 2024 · 8 comments
Open

Take over network from existing controller #7096

AlCalzone opened this issue Aug 12, 2024 · 8 comments
Labels
enhancement New feature or request

Comments

@AlCalzone
Copy link
Member

To make migration from legacy controllers easier, especially when NVM backup/restore is not an option, consider the following flow:

  • Start learn mode, join existing network. As part of this, existing nodes' info is transferred to Z-Wave JS
  • Ask user to turn off existing controller
  • Read NVM, modify NVM to set own node ID to the node ID of the previous SUC
  • Write modified NVM
  • Restart to apply modified NVM
  • Maybe (investigate?): Change own role to SUC/SIS
@AlCalzone AlCalzone added the enhancement New feature or request label Aug 12, 2024
@TomMalfrere
Copy link

I'm following...
I have the following setup

  • Raspberri Pi 3B+ rev1.3
  • Raspian Bullseye 32bit OS
  • AEOTEC Gen5 ZW090 USB controller
  • z-wave-js UI in a docker
  • MQTT (mosquitto) in a docker
  • Domoticz (not in a docker)

I'm have issues lately with my AEOTEC Gen5 ZW090 USB-stick that becomes unresponsive after 2-3 days.
A reboot (ZWave stick remains powered and plugin) fixes the problem.

I would like to move to

  • Raspberri Pi 3B+ rev1.4
  • Raspian Bookworn 64bit OS
  • RAZBerry
  • z-wave-js UI in a docker
  • MQTT (mosquitto) in a docker
  • Domoticz (in a docker)

How can I replace the Z-Wave controller in my network but make sure my devices are reported the same in MQTT ?
This is a live system with 41 z-wave devices.

@AlCalzone
Copy link
Member Author

If your Z-Stick is on firmware 1.2 you can just take an NVM backup and restore that on a new controller using Z-Wave JS UI.

@TomMalfrere
Copy link

If your Z-Stick is on firmware 1.2 you can just take an NVM backup and restore that on a new controller using Z-Wave JS UI.

"productLabel": "ZW090",
"productDescription": "Z‐Stick Gen5 USB Controller",
"manufacturer": "AEON Labs",
"firmwareVersion": "1.0",
"sdkVersion": "6.51.2",
"protocolVersion": 3,

@AlCalzone
Copy link
Member Author

It's possible that you can upgrade with the firmware updater from Aeotec (search for Z-Stick 5 firmware 1.2).

If not then this feature would be for you.

@TomMalfrere
Copy link

TomMalfrere commented Aug 20, 2024

I tried updating the firmware this weekend. It did not work.
It appears my stick is running since september 2017 so it was likely manufactured before 2018...

I just read : #6341
which affects me also.
I went for option 6...
I'm running for a few days now without a reboot... (normally every 2-3days)

@Hedda
Copy link
Contributor

Hedda commented Oct 10, 2024

Sounds promising if can make the whole procesure user friendly all from the UI.

For reference, Home Assistant’s ZHA integation which is their native Zigbee gateway component has a succeded with the user friendly part via similar built-in UI feature for ”radio migration” that allow users to migrate from and old to a new Zigbee Coordinator adapter via a scripted backup and restore function that does everything for the user. See:

https://www.home-assistant.io/integrations/zha#to-migrate-to-a-new-zigbee-coordinator-radio-inside-zha

This feature in the ZHA integration makes it super simple for any user to migrate to a new Zigbee Coordinator (radio adapter).

https://connectzbt1.home-assistant.io/migrate-zigbee-zha-only/

Users without ZHA can otherwise use zigpy-cli (which is the command-line-tool for the zibee livrary and Zigbee framework that ZHA dependsnon) to do NVM backup and restore with it as a stand-alone utility:

https://github.com/zigpy/zigpy-cli

Would be awesome if the Home Assistant’s Z-Wave JS integation and Z-Wave JS UI had similar features that made it just as easy and user-friendly to migrate to a newer Z-Wave Controller.

@Hedda
Copy link
Contributor

Hedda commented Oct 10, 2024

Oh, and by the way, also for reference, both Nerivec’s ”ember-zli” and ”zigpy-cli” command line interface tools similarly convert Zigbee network backups to similar JSON representation that can be modified before restore backup from file

https://github.com/Nerivec/ember-zli

might be interesting to look at Nerivec’s ”ember-zli” because it is made for Silicon Labs Gecko Bootloader and written in TypeScript.

Perhaps might also be interesting to look at the Open Zigbee coordinator backup format for a consistant JSON representation (even if that was made for Zigbee and not Z-Wave):

https://github.com/zigpy/open-coordinator-backup

Though zigpy-cli and bellows are what is used by ZHA but those are written in Python:

https://github.com/zigpy/zigpy-cli

https://github.com/zigpy/bellows

@brandond
Copy link

I recently had to decommission an old Vera Home controller, and I think all the info necessary to take over would have been available in the backup files - but I ended up just excluding/including all the devices into a new network because I couldn't figure out how to get zwave-js to take over. This would have been great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants