How to back up and restore Zigbee network
Learn how to back up and restore your Zigbee network in Home Assistant, with the real steps for ZHA and Zigbee2MQTT and notes for Hubitat users.
On this page
A Zigbee network is more fragile than it looks. The thing you can’t afford to lose isn’t the devices themselves — it’s the coordinator’s network data: the PAN ID, the extended PAN ID, the network encryption key, and the channel. If you keep that data, you can move to a new coordinator stick and your devices rejoin on their own. If you lose it, you re-pair every device by hand. This guide covers how to back up and restore that data for the two Zigbee stacks people actually run in Home Assistant — ZHA and Zigbee2MQTT — plus notes for Hubitat. Running Z-Wave as well? The backup process is different there - see how to back up and restore a Z-Wave network.
Why the Coordinator Backup Is the Thing That Matters
Every Zigbee device is paired to one coordinator using shared network credentials. A standard Home Assistant backup saves your config and database, but the Zigbee network credentials are what let a replacement coordinator impersonate the old one so devices reconnect without re-pairing. Back those up separately and a coordinator failure becomes a swap, not a rebuild.
In a Home Assistant setup the coordinator is usually a USB stick such as the Sonoff Zigbee 3.0 USB Dongle Plus, the Home Assistant Connect ZBT-2, or a ConBee-family adapter, or it’s a self-contained hub like the Aqara Hub M3 or Aeotec Smart Home Hub. On a sealed hub you don’t get raw access to the network key, so your “backup” is whatever export the hub vendor provides.
One clarification worth getting right: deCONZ/Phoscon is the software for Dresden Elektronik’s own ConBee USB sticks and RaspBee Pi modules — it is not what a Sonoff dongle uses. Sonoff and most other generic coordinators run under ZHA (built into Home Assistant) or Zigbee2MQTT (a separate add-on/project you install). Pick the right tool for your hardware before you think about backups.
Backing Up with ZHA (built into Home Assistant)
ZHA backs up the network automatically. Every time the network configuration changes, ZHA writes a backup, and these are included whenever you take a normal Home Assistant backup — so if you already run Home Assistant backups, your ZHA network credentials are covered.
For a manual copy, go to Settings - Devices & Services - Zigbee Home Automation - Configure - Network Settings, where you can view and download the current network backup. Keep that file with your other backups so you can re-create the network on a new stick.
Backing Up with Zigbee2MQTT (add-on/project)
In the Zigbee2MQTT web UI, open Settings - Tools and choose Request Z2M backup, then Download Zigbee2MQTT backup. You get a zip; inside it is a coordinator_backup.json holding the network credentials. Zigbee2MQTT also writes this file continuously to its data directory, so it’s captured by a full Home Assistant backup as well. Save the standalone coordinator_backup.json somewhere safe regardless — it’s the single most useful file for a fast recovery.
Backing Up a Sealed Hub (Hubitat, Aqara, etc.)
On a Hubitat Elevation C-8 you cannot export the raw Zigbee key. Hubitat’s built-in local backup (Settings - Backup and Restore) downloads the hub database: your apps, rules, and device entries. It does not include the Zigbee radio. Backing up the Zigbee radio itself and migrating it to a replacement hub is part of Hubitat’s paid Hub Protect / Cloud Backup subscription, and Zigbee radio migration is supported on the C-8 and C-8 Pro. Take the local backup anyway, on a schedule, and pull a copy off the hub.
Storing Backups Off the Box
Wherever the file lives, get a copy off the device that created it. A NAS, an external drive, or encrypted cloud storage all work. Treat the Zigbee network key as a secret — anyone with it can join your network — so encrypt it if it’s leaving your house.
Restoring the Network
ZHA: When you set up ZHA on a new or re-flashed coordinator, the network-formation dialog lets you upload a manual backup. Point it at your ZHA backup (or even a Zigbee2MQTT coordinator_backup.json — ZHA can import that) and the new stick adopts the old credentials. Devices rejoin on their own, usually within an hour; you don’t re-pair them.
Zigbee2MQTT: Put your saved coordinator_backup.json in the Zigbee2MQTT data directory before first start so the new coordinator comes up with the original network. One caveat straight from the Zigbee2MQTT docs: backup and restore is only implemented for the zstack (Texas Instruments) and ember (Silicon Labs) adapters, so a coordinator swap without re-pairing is a supported move only on those. The migration is also one-directional in tooling terms: you can restore a Z2M backup into ZHA, but there is currently no supported path to load a ZHA backup into Zigbee2MQTT.
Hubitat: Restore the local backup through Settings - Backup and Restore. On the same hub, with its radio untouched, that brings back your apps, rules, and device entries. Moving to a replacement hub is a different story: without a Hub Protect / Cloud Backup restore, the new hub’s radio holds none of the old network data, so you re-pair the Zigbee devices by hand.
What Restore Does Not Magic Away
Even a clean credential restore has rough edges. After a Z2M-to-ZHA migration, device names and some higher-level settings don’t carry over, and entity IDs change — so dashboard cards and automations referencing the old entities need fixing. Battery and sleepy end devices can take a while to check back in; mains-powered routers reconnect fastest. And a backup taken before you added a batch of devices won’t know about them.
Quick Verdict
The device list is replaceable; the coordinator’s network credentials are not. If you run ZHA, your network backup rides along in normal Home Assistant backups and you can also download it from Network Settings. If you run Zigbee2MQTT, grab coordinator_backup.json from Settings - Tools and keep a copy off the box. Match the software to your hardware — ZHA or Zigbee2MQTT for Sonoff-type sticks, deCONZ only for ConBee/RaspBee — and a dead coordinator becomes a ten-minute swap instead of a weekend of re-pairing.