xbee-python icon indicating copy to clipboard operation
xbee-python copied to clipboard

[REQUEST] Open ZigBee Coordinator Backup Format support for Zigbee network backups and restoring from and to Digi XBee 3 Zigbee 3 RF modules

Open Hedda opened this issue 2 years ago • 1 comments

Request that Digi XBee developers consider extending XBee API to allow reading and writing relative Zigbee data from and to the Zigbee coordinator (i.e. network key, frame counters, child tables) so that backup and restore of a Zigbee network for this platform will be possible for existing networks in the future.

https://github.com/zigpy/zigpy-xbee/pull/123

https://github.com/zigpy/zigpy-cli/pull/2

Reasing this data needed to do Zigbee network backup is already possible via APIs for competing Zigbee coordinators such as Texas Instruments ZNP (TI Z-Stack), Silicon Labs EZSP (EmberZNet Serial Protocol), ZiGate, and Dresden-Elektronik deCONZ based radios (ConBee/RaspBee).

This is needed and used in the zigpy-cli and zigpy-xbee for the zigpy project for implementing support for Zigbee network backup/restore to the "Open ZigBee Coordinator Backup Format" open format and shared common file standard in Zigbee coordinator implementations.

https://github.com/zigpy/open-coordinator-backup

This new open format standard is a unified file format for storing and restoring Zigbee network backups. It was initially invented as a shared project by developers from Zigbee2MQTT and zigpy (library used in Home Assistant's ZHA and other implementations).

By sharing the same open format in different Zigbee implementations/applications it makes it possible for end-users to upgrade, downgrade, and/or migrate between different hardware dongles and even between different Zigbee implementations/applications without ever having to re-pair their Zigbee devices.

Digi XBee API supporting saving Zigbee network backups to standard "Open ZigBee Coordinator Backup Format" files would allow Digi XBee 3 Zigbee 3 users in other implementations to save backup and restore them in the same or other Zigbee implementation using old or new hardware, including other implementations which already support Digi XBee 3 Zigbee 3, like the zigpy-xbee library used by Home Assistant's ZHA integration, Jeedom Zigbee Plugin, and Domoticz Zigbee Plugin (Zigbee for Domoticz)

So far this open format standard has already has been adopted or is in the progress of being adopted by these Zigbee implementations:

  • Home Assistant's ZHA integration component (via zigpy, zigpy-cli, and its libraries) https://www.home-assistant.io/integrations/zha

  • Jeedom Official Zigbee Plugin https://doc.jeedom.com/en_US/plugins/automation%20protocol/zigbee/

  • Zigbee for Domoticz (plugin for Domoticz) https://github.com/zigbeefordomoticz/Domoticz-Zigbee

  • Zigbee2MQTT (Z2M) https://www.zigbee2mqtt.io/

  • ioBroker Zigbee https://www.iobroker.net/#en/adapters/adapterref/iobroker.zigbee/README.md

Example usage in implementations:

  • https://github.com/zigpy/zigpy-znp/blob/dev/TOOLS.md#backup-and-restore
  • https://github.com/zigpy/bellows#nvram-backup-and-restore

FYI, this is already a popular upgrade, downgrade, and migration method among users in some communities as seen in examples here:

  • https://www.youtube.com/watch?v=ql58ZfXso1M&ab_channel=EverythingSmartHome
  • https://community.home-assistant.io/t/backup-your-zha-husbzb-1-stick-and-even-seamlessly-migrate-to-a-new-stick-without-re-pairing/229044/

Hedda avatar Apr 19 '22 14:04 Hedda

Would this also cover the XBee 3 USB Adapter (XU3-A11)?

glc650 avatar Jan 10 '23 05:01 glc650