Open andryblack opened 1 month ago
The serial protocol itself is usually a simple implementation detail, the various stacks differ in their supported features and ordering of operations (e.g. adding endpoints before the network is up, forwarding/sending raw ZDO commands without processing, TC link keys, weird quirks).
Once you start mixing two sources of quirks into one protocol, you basically have two stacks again, just separated by if
statements for each one...
That being said, I think Espressif uses the ZBOSS stack, so it probably shares those quirks. We have an in-progress ZBOSS implementation already for ZHA, I'll give your firmware a try: https://github.com/kardia-as/zigpy-zboss
Instead of create separate adaption of any new protocol of any new manufacturer we may create firmware for different platforms with same common protocol. I write basic implementation for ZBOSS NCP protocol for esp32 with coordinator role supported almost all command used by zigbee2mqtt project. Maybe it is more optimal to support one stack - defined protocol on different platforms.