Moving a Zigbee coordinator without re-pairing everything
Forty-one devices, two of them behind furniture that has not moved since 2021. Re-pairing all of them was not on the table.
Why move at all
The old coordinator sat in a USB port on the back of the node, six centimetres from a mechanical disk and directly under the switch. Link quality to the far end of the flat had been quietly degrading for a year: the two bathroom sensors were routing through four hops to reach a coordinator that is nine metres away in a straight line.
The fix was not a better antenna. It was a USB extension cable and a coordinator that is not sandwiched between a disk and a switch.
The part people skip
A Zigbee network can be carried to new hardware, because the identity that matters lives in the network key, the PAN identifiers, and the channel, not in the stick itself. Move those and the devices never notice. Miss one and you are crawling behind furniture.
network key 32 hex characters, keep exactly
extended PAN id 8 bytes, keep exactly
PAN id 16 bits, keep exactly
channel keep, or move deliberately and once
Sequence that worked
1. Stop everything first
The controller must not be running while the backup is taken or restored. A half-written network state is worse than no backup, and it is the one failure mode that costs you the whole evening.
2. Take the backup and read it
Not just take it: open it and confirm the key material is actually in there. Mine was, but only because the tool version was recent enough. An older build wrote a backup that omitted one identifier, which I would have discovered at the worst possible moment.
3. Restore onto the new stick, then plug it in once
Restore first, connect second. Powering up a factory-fresh coordinator on the same channel while the old network still exists is how you end up with two networks and a very confused set of routers.
4. Bring routers up before end devices
Mains-powered devices rebuild the mesh. Battery sensors check in on their own schedule, some of them hourly. Do not judge the migration until every sleeper has had a full cycle to report.
Results
| Metric | Before | After |
|---|---|---|
| Devices at 1 hop | 12 | 27 |
| Worst-case hops | 4 | 2 |
| Bathroom sensor LQI | 41 | 146 |
| Devices needing re-pair | none expected | 2 |
The two that refused
An old smart plug and one door sensor came back as unreachable and stayed there through two full sleep cycles. Both are early devices from the same vendor, both cached something they should not have cached. Re-pairing took ninety seconds each, which is a fair price for keeping the other thirty-nine.
Correction, 9 July 2026
I originally wrote that the channel could be changed in the same operation. It can, but the two stubborn devices were almost certainly stubborn because I did both at once. Move the coordinator, confirm the mesh, then change the channel on another evening.