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

Coordinator replacement - EFR32MG21 to EFR32MG24 #5

Open
stickpin opened this issue Oct 6, 2024 · 9 comments
Open

Coordinator replacement - EFR32MG21 to EFR32MG24 #5

stickpin opened this issue Oct 6, 2024 · 9 comments

Comments

@stickpin
Copy link

stickpin commented Oct 6, 2024

Hi,

Has anyone already tried migrating from one EFR32 USB coordinator to another without repairing the whole network?
I want to migrate from SkyConnect (EFR32MG21) to the newer SMLight SLZB-07Mg24 (EFR32MG24).

It seems like ember-zli with backup and restore functionality might do the trick.

Does anyone know if regular Stack backup and Restore will be enough?

Thanks a lot in advance!

@Nerivec
Copy link
Owner

Nerivec commented Oct 6, 2024

Regular backup and restore from z2m itself will not write the EUI64/IEEE of the adapter (for now).
If you do a backup/restore tokens from ember-zli it will restore all (best when you migrate like that). Otherwise, you can write the EUI64 with ember-zli, then let z2m restore the network.

@stickpin
Copy link
Author

stickpin commented Oct 7, 2024

@Nerivec Thanks a lot for the info!
I will try to do tokens backup/restore once I get a new dongle somewhere next week.

@stickpin
Copy link
Author

stickpin commented Oct 9, 2024

@Nerivec Migrated without any issues. Magic! 🪄 Thanks a lot! 😊
Now theoretically I have two "identical" coordinators.
What will be the best way to remove it from the network and replace the EUI64/IEEE?

I guess, I will need to do "Reset NVM3 tokens" first and then "Write EUI64 NVM3 token" with some random value change in the existing EUI64.

@Nerivec
Copy link
Owner

Nerivec commented Oct 9, 2024

Perfect!

Yes, that should do it. Make sure to write a value that won't clash with any device around (hard to do, but you know, luck... 😛). Should be easy enough to just change the last 2-3 characters from the original value (that will also keep the original manufacturer tag, the first 6 after 0x, though it doesn't matter much).

@nanostra
Copy link

nanostra commented Oct 9, 2024

Hello @Nerivec and thanks for your work. I have the same kind of task to perform as @stickpin, but I probably have less experience. I also want to migrate my ZBDONGLE-E EFR32MG21 to an SLZB-07 EFR32MG24. I understand that I need to do a Backup NVM3 tokens from the ZBDONGLE-E and then Restore NVM3 Tokens on the SLZB-07 MG24.

Q: If I understand correctly, the restore will also copy the EUI64, so logically I just need to replace the ZBDONGLE-E with the SLZB-07 MG24 and possibly change the port name in Home Assistant to fully recover my network, right?

However, I don't understand the next step mentioned by @stickpin.

"What will be the best way to remove it from the network and replace the EUI64/IEEE? I guess, I will need to do "Reset NVM3 tokens" first and then "Write EUI64 NVM3 token" with some random value change in the existing EUI64."

Q: If, I want to keep the ZBDONGLE as a backup, do I have anything else to do?
Q: One last question, when entering the Stack option, does the choice between Hardware flow control or Software flow control matter?

@Nerivec
Copy link
Owner

Nerivec commented Oct 10, 2024

Q1: Indeed. Backup/Restore tokens basically restores everything ZigBee related, and should put the network exactly as you left it last.
Q2: Indeed, you don't have anything to do, but you also cannot use it in proximity of the restored one at the same time (they will have the same EUI64, which will require them being on separate networks to not conflict).
Q3: Better to get it right, it avoids weird behavior (or things not working at all). ZBDongleE: software.

@nanostra
Copy link

Migration completed. Thanks again for your work and these clarifications.

@nanostra
Copy link

I have created a guide in English and French, which can be found here: https://github.com/nanostra/Migration-EFR32MG21-vers-EFR32MG24

@Nerivec
Copy link
Owner

Nerivec commented Oct 11, 2024

Quick notes:

  • You can do all this on plain Windows (either via npm, or using the tarball package), no need for WSL.
  • About "keeping the old dongle as backup": as soon as you started up the network again on the new dongle, several tokens would have started changing again (frame counters & such), which means it is no longer synced with the old one. If you ever were to put the old dongle on the network (as emergency I assume), best course of actions would be to restore the latest Z2M coordinator_backup.json onto it (which means leaving the network with Ember ZLI, then starting Z2M, which will trigger the network restore process), otherwise, you might encounter some sync issues (EmberZNet seems pretty resilient in that regard, but still worth mentioning if something were to not work as expected). You could also take regular tokens backup of the new dongle, for extra safety.
  • Careful with that last screenshot, as changing rtscts is entirely adapter-dependent.

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

No branches or pull requests

3 participants