espressif / arduino-esp32

Arduino core for the ESP32
GNU Lesser General Public License v2.1
13.3k stars 7.35k forks source link

Support of Zigbee protocol #8807

Closed P-R-O-C-H-Y closed 7 months ago

P-R-O-C-H-Y commented 10 months ago

This issue tracks support of Zigbee protocol (supported by ESP32C6 and ESP32H2 chips)

Initial steps:

P-R-O-C-H-Y commented 10 months ago

Tasks have been updated.

Hedda commented 9 months ago

@P-R-O-C-H-Y Off-topic; just wondering if you might be interested in looking at Zigbee for Tasmota? -> https://github.com/arendst/Tasmota/discussions/20045

For reference, Tasmota's Zigbee2Tasmota (Z2T) implementation already supports Texas Instruments ZNP and Silicon Labs EZSP Zigbee stacks/interfaces with respective Zigbee Coordinator adapter running Zigbee NCP (Network Co-Processor) host firmware:

https://tasmota.github.io/docs/Zigbee/

Tasmota itself is a arduino-esp32 based open source firmware for DIY devices (especially popular for home automation solutions):

https://tasmota.github.io/docs/

PS: While Tasmota itself is mature, the ESP32-C6 support in Tasmota is still experimental, however you can follow its progress here:

https://github.com/arendst/Tasmota/discussions/19350

lbernstone commented 9 months ago

arduino-esp32 is developed as a HAL for the hardware capabilities provided by the Espressif frameworks. This makes it much easier to maintain support, since the Espressif teams are being paid for that work. The zigbee (and zboss) library does provide support for gateways/coordinators, but the primary hardware support is for the 802.15.4 radio itself. ESP32-C6 and ESP32-H2 have the ability to be actual zigbee devices, and the libraries being developed will expose those capabilities for integration into OOP/C++/Arduino projects.

P-R-O-C-H-Y commented 8 months ago

Update: Ported 2 simple Zigbee examples from ESP-Zigbee-SDK (esp-idf) #9024. Creating a wrapper or a library is not planned for now, so after merging the examples we are closing this issue.

fillibar commented 7 months ago

With the Arduino examples, are there any plans to make them able to connect to another hub/controller and not just another esp32c6 acting as a coordinator?

While it looks like that might be possible, at this time they just hang (monitor shows it is stuck at "Network steering was not successful"). This seems very similar to the issue here: https://github.com/espressif/esp-idf/issues/10662

With the IDF example a heavily revised esp_zb_task seemed to help (also updating the dependencies since the ones for those examples are a bit behind).

Making a similar change to the esp_zb_task in the .ino file did not work even after copying that section from code that works when flashed with the idf.

Another thing that might help is if Serial output was provided for more of the functions. Beyond just an initial bit of information when the ESP32C6 starts up, nothing further is recorded in the Arduino IDE's Serial Monitor (vastly less than what the idf's monitor shows).

Hedda commented 7 months ago

FYI, it seems that Espressif devloper(s) are working on an Zigbee NCP radio library for zigpy (Python based Zigbee framework with Zigvee Stack/CLI abstraction API) so can be used as a Zigbee Coordinator NCP for projects like Home Assistant and Domoticz that depend on zigpy. Check out:

https://github.com/zigpy/zigpy/issues/1052

and

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

and

https://github.com/espressif/esp-zigbee-sdk/issues/124

With the Arduino examples, are there any plans to make them able to connect to another hub/controller and not just another esp32c6 acting as a coordinator?

You should really be posting any Zigbee related question and requests to Espressif’s ESP Zigbee SDK repository instead:

https://github.com/espressif/esp-zigbee-sdk

https://github.com/espressif/esp-zigbee-sdk/issues

fillibar commented 7 months ago

I figured this was the place to post about the Arduino question because this is where I found the links to the Arduino examples.

ilker-aktuna commented 7 months ago

@Hedda since you asked to write on zigbee sdk repo, I created this issue: https://github.com/espressif/esp-zigbee-sdk/issues/228

But nobody seems to be interested there...