Moving from 32 bit raspi4 with conbee 2 zigbee dongle to 64 bit raspi5 with sonoff plus dongle

Hi,

As 32 bit hw will soon be not supported and my pi4 is getting a bit overloaded, i decided to switch to a complete new setup.

  • Both environments are container installations with newest stable release.
  • Old hardware is a rasperry 4 with sd card
  • Old os is 32 bit raspi os
  • Old zigbee dongle is a conbee 2
  • Old Database mariadb on a dsm nas device.
  • New database still unsure, if i migrate it from nas to the pi5
  • New hardware is a raspi 5 with nvme ssd
  • New os is 64 raspi os
  • New zigbee dongle is a sonoff plus

Now i am unsure, about how to do the migration, because of the zha/zigbee (50+ devices). Can i just install my new raspi, plugin the new dongle there and do a backup/restore and the go to the zha and do a migration?

What I already did, is a firmware update of the conbee II and also of the sonoff to the newest firmware. Also tested, that the sonoff dongle works in a blank installation on the new hardware.

I read all kind of information, regarding the migration. So normally it should work to do a backup of the old HA and just restore it into the new and then do the migration step in HA, even, the old dongle is not available there. But please be so kind and confirm it quick that this is the way to go.

Thanks for tips
Lukas

How to migrate ZHA to a new coordinator

Go to your Home Assistant dashboard, integrations, find your ZHA entry and click configure underneath.

Now you should see a new screen with the options to download a backup or migrate the radio. Now is a good time to actually download a backup to be on the safe side. Once that is done you can click the migrate radio button and confirm the warning.

Migration & backup options in ZHA

In the following screen you are asked to select the new radio. Chose the right name and the path from above (ttyUSB1 in my case) here and click submit. ZHA will now attempt to restore a backup onto this new coordinator which might take a moment.

Select the new radio here

Next you have to select the type of radio. This depends on your hardware of course but for the Sonoff dongle Plus znp is the right choice. For Sonoff Dongle E choose EZSP.Click submit again to continue.

Select the radio type

Then its finally time to enter the serial device path. Choose the /dev/serial/by-id/... . The port speed of course depends on your hardware again but 115200 should be fine in most cases. Data flow control can be left on default. Now one more click on submit.

Enter the right serial path

This docu describes the way to migrate the dongle using an existing installation, not using a new ha instance on new hw. Do you think, its better to migrate first to the new dongle only. Backing up and restore to new hw (including to move the sonoff dongle to new hw) afterwards?

First make a backup, migrate on the old hardware, backup again, restore on the new hardware.

Thank you very much!

I agree with @francisp to migrate the dongle before moving to the Pi5, simply because you don’t want too many moving parts all at once. Alternatively, you could wait to change dongles until a reasonable time after restoring to the Pi5 and determining it is stable with the conbee.

You’re being forced to do the Pi upgrade, but my general advice on zigbee is if it ain’t broke, don’t fix it.

For the Pi4, I wonder if the HAOS team has considered an in place 32->64bit upgrade. My understanding of HAOS is they upgrade OS to a separate partition and keep the existing version partition around as fallback. Seems theoretically possible, but the devil’s in the details, and even if possible, they may not have the bandwidth or desire.

So i did the migration now. and it failed!
1.) I plugged in the new dongle and it was found by the os (dmesg and lsusb/usb-devices listed the dongle). It is attached to /dev/ttyUSB0. In my docker-compose I have the device listed to be visible within docker. So I thought all is fine. I started the migration by pressing the button, but it could not see the new sonoff dongle. I needed to restart the container first, to let the container see the dongle. So that was not a big issue. But the old dongle was already resetted by the integration.
2.) I tried it again, after the container restart. Now it found the new dongle and started the migration. Now it failed telling me: zigpy.exceptions.NetworkSettingsInconsistent: Radio network settings are not compatible with most recent backup! I thought this has todo with the sonoff beeing incompatible with the conbee II as it is using another protocol and a can handle zigbee version 3. It also changed the channel from 15 to 25! Could also be a problem, right?
3.) I now tried it a 3rd time by inserting the backup instead of keeping the existing network. But now all paired devices are showing no RSSI and are not responsive any longer. So it seems that I am in the worst case scenario. Even after another 30 mins, not a single device has an RSSI value, but all seem to be visible in the network:


now its 18:48 → so there is no connect since 50 mins.

Any advice what to do next?

19:00: I switched back to my old dongle and now several devices are back connected to the zigbee network (the devices which are directly connected).

So if the final problem is the automatic channel switch? How can I prevent it?

Just found this post:

Seems that the poster had exactly the same issue as I have. So i need to select just another backup to restore?

Just tried it again using the newly downloaded backup, now it worked. All devices are coming back to be responsive. Only thing I am wondering is the RSSI parameter, which is still “unknown”, for each and every device.
One more question: As the new dongle is zigbee 3.0 compatible and the old one was not, is the full network automatically switched to zigbee 3.0 now?

1 Like