UPDATE! Jeedom's new official Zigbee Plugin is now also based on the Zigpy library and shared the same dependencies as Home Assistant's ZHA code:
Zigpy and its radio libraries can act as low-level open source Zigbee stack that abstracts/translate third-party Zigbee stacks with common API and CLI.
The main benefit of implementing a Zigbee implementation via Zigpy library is that it has support for several different hardware via its dependencies.
This means that if developers create a zigpy based plugin for Domoticz using zigpy's unified radios serial API then could relatively easily extend to support all different Zigbee stacks from several manufacturers which does not use the same serial APIs and CLIs at all.
Zigpy library abstract Zigbee stacks and acts as a common framework CLI/API so that support for different Zigbee adapters integrates the same way.
That is, there are many different Zigbee radio libraries for the zigpy library but they all used in unified way sharing the same CLI/API in a common way:
- Silicon Labs EmberZNet (EZSP) radios like EFR32MG1x/EFR32MG2x (and obsolete EM35x/ETRX35x) https://github.com/zigpy/bellows
- Texas Instruments Z-Stack (ZNP) radios like CC2652 and CC1352 (as well as obsolete CC2531, CC2531, CC2538) https://github.com/zigpy/zigpy-znp
- Dresden Elektronik deCONZ based radios like ConBee 2 and RaspBee 2 (and obsolete ConBee/RaspBee) https://github.com/zigpy/zigpy-deconz
- XBee (Digi XBee Zigbee) based adapters like Digi XBee 3 Zigbee 3 RF modules https://github.com/zigpy/zigpy-xbee
- ZiGate (and ZiGate+ / ZiGate Plus) based adapters and modules https://github.com/zigpy/zigpy-zigate
zigpy radio libraries also support a common "open Zigbee coordinator backup format" making it possible to migrate between Zigbee hardware/stacks:
The long-term idea with this "open Zigbee coordinator backup format" is that you will not only be able to backup a Zigbee USB adapter that is based on for example Silicon Labs Zigbee stack and then restores it to a Zigbee USB adapter that is based on other like Texas Instruments Zigbee stack, but as well that you will be able to do a backup of your Zigbee network in one Zigbee solution that supports "open Zigbee coordinator backup format" like for example Zigbee2MQTT and then restore it to the other Zigbee solution which also supports it, like for example Home Assistant's ZHA integration or Jeedom, and hopefully even more Zigbee solutions in the future.
There is no zigpy SDK but I believe a Zigbee implementation based on zigpy could be made to act similar to how Z-Wave already works in Domoticz(?).
With that, my understanding is that any developer building an implementation based on zigpy will need to first learn how Zigbee works at a low-level.
What do you developers working on different Python-based Zigbee implementation plugins for Domoticz think about this idea?