Community feedback on migrating adapter with different chips #26716
Replies: 26 comments 21 replies
-
|
I was eventually successful migrating from deconz (ConBee2) to EZSP (SLZB-07), Z2M version 2.1.3:
|
Beta Was this translation helpful? Give feedback.
-
|
I have successfully migrated from Z-Stack to EmberZNet (7.4.4) without re-pairing by following the guide above. Z2M version 2.1.3. One addition. I had to remove |
Beta Was this translation helpful? Give feedback.
-
|
Hi |
Beta Was this translation helpful? Give feedback.
-
|
Hi, It was not straight forward and I tried a mix of FW versions and manual merge of backup to coordinator_backup.json. In the end, I think a power cycle is what was needed! The next error was a z2m configuration one. Those values are in the zigpy backup, so no problem finding them. Once the correct network was up, most devices came across without issue. A few Moes lights needed re-pairing, the majority didn't, and one device is refusing to (re)pair (Moes socket). Despite the hour or so faffing, this was still much easier than re-pairing 50 odd devices - thank you! Versions: |
Beta Was this translation helpful? Give feedback.
-
|
🎉 Reporting another successful migration in a network with over 100 devices:
A few notes:
All in all, this should probably land in the official docs. Even if it's a bit of a "here be dragons" method it certainly works on any stack that is able to import/export addresses & keys. |
Beta Was this translation helpful? Give feedback.
-
|
Happy to report that I successfully migrated from a RaspBee II, wich was undocumented until now!
All tasks have been done on the Raspberry Pi4 running Home Assistant OS, no external devices are required. Proud to report this so you can add it to the main post! Some considerations: I have followed the same steps in the main message, just adapted for this process. Here's an overview:
- serial:
adapter: ember
|
Beta Was this translation helpful? Give feedback.
-
|
Wow thanks for the guide! The migration worked great for me!
My Process and some notes:
|
Beta Was this translation helpful? Give feedback.
-
|
Smooth migration here from Sonoff Dongle-E to SLZB-MR1. (ember to zstack)
My notes:
|
Beta Was this translation helpful? Give feedback.
-
|
Just to report that I successfully migrated from Bitronvideo AV2010/10 using ezsp to a Sonoff Zigbee 3.0 USB Dongle Plus E (7.4.4 firmware) using ember A few notes:
Restarting zigbee2mqtt once more solved those issues. I'll keep looking for oddities in the upcoming hours, but right now, it looks successful for my network with 30 devices |
Beta Was this translation helpful? Give feedback.
-
|
I have migrated using this procedure from conbee2 to slzb-06 core 2.9.4 / zb coordinator firmware 20240710. The z2m add-on started ok and control most of the zigbee devices.
|
Beta Was this translation helpful? Give feedback.
-
|
Source: Sonoff Dongle-P (Z-Stack 20230507) - USB I have followed the guide to migrate my coordinator from a ZBDongle-P to SLZB-06M, but without success. I perform the backup from the ZBDongle-P (Z-Stack) and receive an error when I try to restore it to the SLZB-06M (Ember). What could be the reason and solution for |
Beta Was this translation helpful? Give feedback.
-
|
Had success with migrating from Slae.sh CC2562R Stick (zstack) to Raspbee II (deconz). The Raspbee II is connected to an ESP32 running esphome, which acts as a TCP to serial bridge. Latest zstack firmware on the CC2562R, firmware 0x26780700 on the Raspbee II. Zigbee2MQTT version 2.6.1 and zigpy-cli version 1.1. Updated zigbee2mqtt config to point to the new adapter and set baudrate, and that was it. |
Beta Was this translation helpful? Give feedback.
-
|
For refererence, wrote instructions in many replies here in the past on migrating with zigpy-cli (contains more technical details + back-story): Maybe you like to add those as sources for reference. |
Beta Was this translation helpful? Give feedback.
-
|
Success migrating from a source Conbee 2 (0x26780700) to a target SONOFF Dongle-P CC2652.
I will note that in optional step 10, I had to run the following commands in order to successfully backup the target coordinator (it was fresh out of the box and never previously used). Maybe it's a bit overkill to backup a brand new stick, but I wanted to do it anyway, just in case I wanted to restore back. zigpy radio znp /dev/ttyUSB0 reset
zigpy radio znp /dev/ttyUSB0 form
zigpy radio znp /dev/ttyUSB0 backup sonoff-backup.jsonAnd in step 14b, the documentation link led to 404. The location of the guide pages may have changed. I found this alternative instead: Refer to Z2M configuration for details. Thanks for sharing this write-up, you saved me a lot of time not having to re-pair my devices! |
Beta Was this translation helpful? Give feedback.
-
|
Anyone has migration experience from Conbee to EmberZNet, specifically Conbee III and ZBT-2? Would appreciate any feedback. |
Beta Was this translation helpful? Give feedback.
-
|
Hey everyone, |
Beta Was this translation helpful? Give feedback.
-
|
cross-posted on zigpy/zigpy-cli#58 I'm trying to migrate from deConz Conbee II (0x26780700) with Zigbee2MQTT (v2.6.3 on Hassio) to SLZB-06M (v3.1.3) Any idea ? Same issue with restore and info ((zigpy-cli) ) ➜ ~ zigpy radio --baudrate 115200 ezsp /dev/ttyUSB0 info
((zigpy-cli) ) ➜ ~ zigpy radio --baudrate 115200 ezsp /dev/ttyUSB0 restore deconz-backup.json((zigpy-cli) ) ➜ ~ pip list | grep zigpy
zigpy 0.87.0
zigpy-cli 1.1.0
zigpy-deconz 0.25.5
zigpy-xbee 0.21.1
zigpy-zboss 1.2.0
zigpy-zigate 0.13.4
zigpy-znp 0.14.2((zigpy-cli) ) ➜ ~ zigpy radio --baudrate 115200 ezsp /dev/ttyUSB0 reset
Traceback (most recent call last):
File "/root/someName/lib/python3.12/site-packages/bellows/uart.py", line 105, in reset
return await self._reset_future
^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/someName/bin/zigpy", line 8, in <module>
sys.exit(cli())
^^^^^
File "/root/someName/lib/python3.12/site-packages/click/core.py", line 1485, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/click/decorators.py", line 46, in new_func
return f(get_current_context().obj, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/zigpy_cli/cli.py", line 20, in inner
return loop.run_until_complete(cmd(*args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/root/someName/lib/python3.12/site-packages/zigpy_cli/radio.py", line 161, in reset
await app.connect()
File "/root/someName/lib/python3.12/site-packages/bellows/zigbee/application.py", line 188, in connect
await self._ezsp.connect(use_thread=self.config[CONF_USE_THREAD])
File "/root/someName/lib/python3.12/site-packages/bellows/ezsp/__init__.py", line 159, in connect
await self.startup_reset()
File "/root/someName/lib/python3.12/site-packages/bellows/ezsp/__init__.py", line 141, in startup_reset
await self._startup_reset()
File "/root/someName/lib/python3.12/site-packages/bellows/ezsp/__init__.py", line 131, in _startup_reset
await self.reset()
File "/root/someName/lib/python3.12/site-packages/bellows/ezsp/__init__.py", line 164, in reset
await self._gw.reset()
File "/root/someName/lib/python3.12/site-packages/bellows/uart.py", line 104, in reset
async with asyncio_timeout(RESET_TIMEOUT):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/timeouts.py", line 115, in __aexit__
raise TimeoutError from exc_val
TimeoutError |
Beta Was this translation helpful? Give feedback.
-
|
Thank you. I’ll take a look. From which to which did you migrate?On 6 Dec 2025, at 18:19, Daniel Duchrow ***@***.***> wrote:
Hey everyone, I’ve been trying to migrate from SLZB-MR1 (CC2652P7) to ZBT-2, but so far without success. I’d like to keep using Zigbee2MQTT, so I’m looking for advice specific to that setup. Has anyone gone through this process and could share tips or a step-by-step guide with me? Any help would be greatly appreciated!
-> https://www.reddit.com/r/homeassistant/comments/1pa1m20/zigbee_coordinator_migration_in_z2m_sonoff/?share_id=CBNmwyJiQ1ZBq-0qrM43I&utm_content=2&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=1
->Worked for me :)
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
I successfully migrated from an Electrolama zig-a-zig-ah! on 20250321 to the ZBT-2 on 7.4.4.6 using zigpy-cli |
Beta Was this translation helpful? Give feedback.
-
|
Smart Home Scene also posted a step-by-step guide here: And someone else also posted a detailed step-by-step guide on TI to Silabs migration here: |
Beta Was this translation helpful? Give feedback.
-
|
Thank you, everyone. This was super helpful and I managed to complete migration successfully. Kind of. The result of the migration that all 87 devices migrated, but only 1 router is directly connected to coordinator. This is obviously very bad. Especially given that the are more routers that are even closer to the coordinator than the only one connected to it. I tried power cycling all of my routers (turned off and waited for 1 minute), but this didn’t seem to have any effect. Still the same issue. And 15 out of 87 devices are on less than 50 LQI.
I am on SLZB-06MG26… and transmission power is set to 20.
Does anyone has experience of forcing zigbee network to rediscover more optimal router after adapter migration?
… On 8 Dec 2025, at 21:09, Hedda ***@***.***> wrote:
Smart Home Scene also posted a step-by-step guide here:
https://smarthomescene.com/guides/how-to-migrate-your-zigbee-network-to-a-new-coordinator/
https://www.reddit.com/r/homeassistant/s/y3VRBvQgYu
—
Reply to this email directly, view it on GitHub <#26716 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AD2QG7RSNQNOU34BMRSPYGT4AXLGHAVCNFSM6AAAAABY4O6CXOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTKMRQGE4DEMY>.
You are receiving this because you commented.
|
Beta Was this translation helpful? Give feedback.
-
|
🎉 Reporting another successful migration in a network with 87 devices: Source: Conbee III (running latest firmware today-14/12/2025) Followed the guide closely. No major errors when running zigpy commands. But after restarting Z2M was greeted with an empty device list. Solved it by restoring devices.db file. No idea why it disappeared. I definitely didn't touch it. So would add to the guide making a copy of this file in case it needs to be restored. After restoring devices.db and restarting Z2M everything seems to work OK. All passive devices appear to be reporting, did one OTA which succeeded, and most devices are controllable without an issue. However, I when running a Map of my 39 routers and 48 end devices I noticed that only a single router is directly connected with coordinator, despite coordinator being in the middle of many routers around it. Tried power cycling all routers, but it didn't seem to have any effect. If anyone has experienced anything like that and found a way to resolve it please shout. |
Beta Was this translation helpful? Give feedback.
-
|
So far over the last 8 hours number of low LQI devices only increased to 18…What is also strange that I have a couple of devices with LQI 0 and they work perfectly reacting to commands instantly. On previous coordinator I didn’t have devices with 0 LQI. Something is strange there…On 14 Dec 2025, at 23:31, Hedda ***@***.***> wrote:
Each and every Zigbee devices in your network will automatically move to more optimal routes over time, you can not force it, just give it a few days for them to stabilize.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
Migrating Sonoff ZBDongle-P to ZBT-2 using latest zigpy cli (0.87.0) for Z2M (version 2.7.1) - didn't really work. Taking a Nevertheless I did a backup of the ZBT-2 with the new (but partial) network information base and made it the
I did ultimately get it working, by essentially following the guidelines mentioned above which can be found here. I should also mention that I did change the ieee address of the zbt-2 as one of the first steps. |
Beta Was this translation helpful? Give feedback.
-
|
Reporting back again. After 2 days of giving the network time to rebuild itself my number of devices with LQI < 50 has gone further up, from 10 initially now to 40, which is about half of my network. I tried manual repairing of select devices assuming this is a too many hops issue, but that doesn't seem to help. When first joining device shows LQI of over 100, but within a minute it goes back to close to 0 again. I also assumed that the issue could be some cheap no-name zigbee devices, so I temporarily turned them off and then tried re-pairing again, but that didn't seem to have any impact. If anyone has any further suggestions would really appreciate it. |
Beta Was this translation helpful? Give feedback.
-
|
Hi everyone, thank you so much for all the info! Reporting: Success: migration from ConBee II to Sonoff Dongle Plus MG24 but some old devices needed re-pairing
I followed the instructions of the main post + some additional bits from other posts. I used my Windows PC to prep the new stick so it was ready to drop straight into Home Assistant. Here is the overview of the steps I followed: 1. Prepared the Windows Environment
2. Created a Python Environmentpython -m venv zigpy3. Activated the Environment.\zigpy\Scripts\activate.bat4. Installed zigpy-clipip install zigpy-cli5. Backed up the ConBee III plugged the ConBee II into the PC and ran the backup: zigpy -v radio deconz COMx backup backup.json(Replace 6. Restored to the Sonoff MG24I unplugged the ConBee II, plugged in the Sonoff, and restored the backup to it: zigpy -v --baudrate 115200 radio ezsp COMx restore backup.json(Replace 7. Back to Home Assistant (Raspberry Pi 4)
Considerations / Observations:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I have written a guide about an unofficial and unsupported method to migrate from one coordinator to another one with a different chip (like Conbee 2 to Sonoff P). This uses a third-party tool (zigpy, used in ZHA Home Assistant).
This discussion is to get feedback and to record successful migration attempts (most importantly, the combinations of chips used).
As a reminder, this method is highly experimental and is NOT supported by Z2M.
Migrate to another adapter with zigpy
Warning
Migration from one adapter to another in Z2M requires backup and restore support which is so far only implemented for the
zstack(Texas Instrument) andemberadapters. Backup and restore is not officially supported for any other adapters (conbee,ezsp,zbossandzigate). Please don't open issues about this method.Migrating with zigpy is highly experimental and has only been tested on a few occasions. Migrating from, say, a "Conbee" adapter to "Zstack" is possible. This requires careful reconfiguration of Z2M to avoid breaking everything. This method is based on zigpy, a tool / library used by the native ZHA integration of Home Assistant, which supports migrating between all major adapter brands.
Be aware that this process essentially clones Zigbee network data. You will end up with two adapters with the same network address, and you will not be able to use the old adapter alongside the new one until you reset it and assign it a new network address.
This should work for any of the following combinations, but you might want to wait for more feedback:
This will not work with:
Current reported successful migration
0x26780700)8.0.2 [GA])Many thanks to all returning with feedbacks!
How to migrate
0x26780700(latest for Conbee II).zigpy-cliinstallation: see Community feedback on migrating adapter with different chips #26716 (comment)zigpy radio deconz /dev/ttyUSB0 backup deconz-backup.json.--baudrate 115200zigpycommands with the-vflag (e.g.,zigpy -v radio ...) for verbose output, which helps in troubleshooting.Unexpected transmit confirmorUnknown device AddrModeAddresscan generally be ignored if you still obtain the backup JSON file at the end.devicessection in the backup JSON file might be concerning but doesn't necessarily indicate a problem for the migration.zigpy radio znp /dev/ttyUSB1 restore deconz-backup.json.configuration.yamlfile:serial. The important fields areportandadapter. Refer to Z2M configuration for details.port, as this is very likely to change with your new adapter.serialfor your previous coordinator, comment them out. You might not need them anymore, and it's better to start with a default configuration for your new coordinator.coordinator_backup.jsontocoordinator_backup.json.backupto avoid Z2M complaining about backup file not correct for the new adapterTroubleshooting:
Sources:
Beta Was this translation helpful? Give feedback.
All reactions