-
Notifications
You must be signed in to change notification settings - Fork 7.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement Zigbee in Arduino #10135
Comments
Hi, love the work so far. I'm so excited to get this running. It looks like it's going to be the next best thing since sliced bread! Are there any intentions to add power source/battery level into the config? If mains powered could it act as a router as well or is that too much for a H2? Maybe ok for the C6.. Many thanks and appreciate the hard work! |
Dev update 12/08/2024 pushed to the dev branch:
|
Oh wow, that looks amazing! So easy, I'm going to love this. Thanks! |
Thank you for your feedback 👍 I really appreciate it. About the power source/baterry level I will add it on the list as good to have, so I will look after having the main part done :) |
Dev Update 14/08/2024 pushed to dev branch:
|
Nice, |
@elgerg The temperature sensor + thermostat are on the list of upcoming tasks. Edit: found your issue you opened. Added a comment. |
Thanks for adding to espressif/esp-zigbee-sdk#401 |
Hi @P-R-O-C-H-Y Any chance I can add this to the "Nice to have" list? In the current Temp sensor version there is an identify cluster (?) added:
Any chance you can add something like that to the list so we can blink an LED when triggered? No idea how to do that at the moment.. Thanks! |
Hi @elgerg, Can you explain a bit more? I am not sure if I got it correctly. |
Hi @P-R-O-C-H-Y There is an identify button. In theory this should allow for the device to identify itself by blinking an LED or something when the button is pressed so you can figure out which device is which. This article explains really well on what identify is: So what would be good to have is a simple way of using this just like you are doing with the rest of the wrapper. Does that make a little more sense? Thanks |
Thanks for explaining. That can be really helpful. Adding it to the list :) |
Excellent. Thanks :) |
Dev Update 16/08/2024 pushed to dev branch:
|
If you're taking requests I'd also like to implement some kind of way of getting the current time from the coordinator to display on a screen. Do you know if it's possible to get the time into some sort of callback? Thanks :) |
@elgerg Do you have any example of this feature? |
Dev Update 28/08/2024 pushed to dev branch:
|
Dev Update 26/09/2024 - PR ready to be reviewed.
|
The Zigbee library got merged! Now it's available in both |
Great job! |
awesome to hear! I'm inexperienced what is required to implement software for Zigbee devices. Having a look at directory https://github.com/espressif/arduino-esp32/tree/master/libraries/Zigbee/src/ep , do I deduce correctly that each "category" of Zigbee device type would require its own implementation files? Maybe you can give hints how others could join? |
Hello @Abdull, take a look at the basics of the Zigbee protocol. You can find many sources and videos on the internet ;) |
Hi @P-R-O-C-H-Y If you're taking requests these are the sort of things I would like to see: Human presence detector (PIR etc) Thanks! |
Id also like to put a feature request:
|
Hi @MeisterQ, the TRV is just a thermostat. We have support for this type of endpoint. Also we have a temperature sensor endpoint supported as well. Just regular sensor for example for windows, doors, etc. is not yes supported. So if you plan to build your own TRV you can already start prototyping with the stuff we already have :) |
FYI, there are more Zigbee examples in the esp32-zigbee-sdk repository which could probably be converted to this new API. See: That includes examples for "deep sleep" and "light sleep" (standby) modes for Zigbee End Device: As for Battery monitoring, I read note Arduino recently released an open-source Arduino Power Management library for Arduino Pro that could maybe be ported? It includes battery management and charger manager + sleep and standby mode More on that here Time Client looks to be missing, and I agree that Zigbee Time Client is needed to make a stand-alone smart thermostat or HVAC. |
Thank you. That could be a start. None of the TRVs existing meet my requirements |
Thanks a lot for this incredible work |
Could README.md files be possibly added to the arduino-esp32/libraries
/Zigbee/ directory, to the example directory, and/or the individual
examples?
These would be very helpful to people new to this. They could also include
actual or links to pictures and videos.
Thanks
David
…On Sun, Oct 13, 2024 at 9:09 AM gdivry ***@***.***> wrote:
Thanks a lot for this incredible work
Can I use the esp32c6 as a Zigbee coordinator with the lib ?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
|
As I understand this is currently only to use ESP32-C6/ESP32-H2 as a ”Zigbee End Device” (ZED) or ”Zigbee Router” device (ZR) stand-alone nodes (i.e. standalone devices that can be added to an existing Zigbee network and then controlled via it), not as Zigbee Coordinator or Zigbee Gateway. If you want a all-in-one Zigbee Gateway using ESP32 then can I suggest that you look into adding support for esp-zigbee-sdk support to Tasmota's sub-project called Zigbee2Tasmota (Z2T) which is currently only compatible with Silicon Labs and Texas Instruments as Zigbee Coordinator but it might give you ideas: and For refernce also check out the zigpy-espzb radio libraary for zigpy and their zha project which can now indirectly use a ESP32-H2 Zigbee Coordinator via zigpy-espzb via an hardware abstraction layer for the Zigbee radios CLI serial interface: And |
@s-hadinger to go off on a tangent with question above; what exact functions are still missing for this new Zigbee API for Arduino to potentially be useful for a Zigbee Gateway project like Zigbee2Tasmota (Z2T)? |
I don't know, I have not checked. But there are no plans to port Z2T to H2/C6 due to the predominance of CC2652P and low number of devices using H2/C6. Also for the future, I expect Thread to progressively take over Zigbee. So I think we are well served with Zigbee as of today with both EFR32/CC2652P compatibility |
Another update for the Zigbee library -> PR #10551
|
This is great work, and i managed to get it to work immediately using a waveshare ESP32-C6 devkit board. With deep sleep i'm getting a full reboot, and if i want reasonably quick response times i can only sleep for relatively short times. So i would assume i need some form of light sleep for that? Just wake up enough to check for commands and go back to sleep? |
I have an ESP32-H2 but only with 2MB of Flash. Will this also work? |
I want to build two sensors: A digital water meter: In my installed watermeter a little metalsheet is rotating. As a sensor i will use an geartoothsensor. |
Thanks for the great work done here. As this whole feature is not jet finished, I'm hesitating to create a new issue. If this here is not the right spot, please give me a hint, where I should put it. I succesfully used the example for the Switch and the on/off light with the given "light" example on a second seeed xiao esp32-c6 and with an ikea power outlet. I tried to expand the example, because I don't want to bind a power outlet manually after every reset. I already found a similar ticket for the espressif SDK., that tells me, that this is already possible. I changed the example to not wait in the setup() for a bound device. But then: nothing happens, because _is_bound = false in the follow up routings. Therefore, I assume, that during initialization the state of _is_bound is not correctly read from the memory, right?
Thanks for any hints how to solve this, or if this already known and planned. |
@P-R-O-C-H-Y have you thought about maybe splitting Zigbee API for Arduino to make one part hardware-agnostic? That is, breakout the Zigbee API from arduino-esp32 into its own separate library makes that hardware independent so that it could be reused by other projects with other Zigbee radio libraries, especially if they too have based their Zigbee stack on ZBOSS, such as example Nordic Semiconductor. With the point being that such a library would attract more Arduino developers that are interested in this Zigbee API but might want to instead make an implementation for a non-ESP32 based radio. |
Hi @tlanfer, thanks for your feedback. |
Hi @AndunHH, thank you for your feedback. I will take a look on this issue with the |
Hi @Hedda, I was not thinking about that as I use the ESP-ZIGBEE-SDK underneath, which uses the ZBOSS. The main idea of Arduino APIs is to offer a similar approach to other Arduino interfaces. If users want to use ESP-IDF Zigbee APIs, that is still possible, they can just ignore the Arduino Zigbee APIs. This is valid for most of our Arduino APIs, actually, users can always use the ESP-IDF underneath. We don't have a goal of portability of our libraries, only to keep portability of user applications. But for sure other manufacturers can follow the same APIs, but the Implementation will depend on them. |
Related area
Create an API for Zigbee within Arduino
Hardware specification
ESP32-C6 and ESP32-H2 as Standalone Nodes. Other SoC can be used as radio co-processor attached to a RPC (802.15.4 radio layer).
Is your feature request related to a problem?
This is an issue to track the progress of developing Zigbee library, a new API for Arduino.
Describe the solution you'd like
Initial tasks:
Zigbee library (wrapper) tasks:
PR: #10265
Good to have features:
more tasks will be added while in progress.
Development branch
Describe alternatives you've considered
No other usable Zigbee wrapper around.
Additional context
Related issues:
#8807 #9156 #9962 #9480
I have checked existing list of Feature requests and the Contribution Guide
The text was updated successfully, but these errors were encountered: