log1x

Moving a Zigbee coordinator without re-pairing everything

2 July 2026 · radios

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

MetricBeforeAfter
Devices at 1 hop1227
Worst-case hops42
Bathroom sensor LQI41146
Devices needing re-pairnone expected2

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.


← All notes