No description
Find a file
Jan Procházka 473b8515ac
feat(zigbee): Add Zigbee library (#10265)
* Initial commit - light bulb + switch working

* Add Thermostat + fix enum

* Dev update: roles, cb removal, handlers

Fixed ep_thermostat to compile successfully
Removed cb from all EP, as it have been removed, virtual methods will be used instead.
Moved zigbee handlers out of Zigbee_core to Zigbee_handlers for better readability.
Fixed zigbeeInit to be bool and return status of initialization for begin function.
Updated examples with edited roles and custom method for on_off light

* Dev update: implement on/off light and switch methods

Implemented basic function calls of switch commands to on/off light:
  lightToggle, lightOn, lightOff, ...
Implemented virtual methods for on/off light that have to be override in user code:
  setOnOff, sceneControl, setOnOffTime, setOffWaitTime
APIs can be changed, still early development.

* Dev update: Factory reset, names, multiple EPs

Implemented Factory reset of Zigbee device, in order to connect to new network without reflashing/erasing flash
Implemented optional setting for Manufacturer and Model names
Added option to allow endpoint to have multiple endpoint connected -> switch - 2 lights (tested)
Minor sketches update

* Dev update: Device ID to string

Implemented easy transfer from device it to Device type (0x0000 = ESP_ZB_HA_ON_OFF_SWITCH_DEVICE_ID  -> "General On/Off switch".

* Implement cmd default response handler

* Remove unused _identify_cluster

* Dev Update: Color DImmable light + switch implemented

Implemeted color dimmable light and color dimmer switch HA devices + examples.
Removed unnecessary stored attribute cluster
Renamed on/off light and switch examples

* Implement Network Scanning

Implemented Zigbee network scanning (async) to mostly match WiFi scan APIs.
Added Zigbee_Scan_Networks example

* Dev Update: Thermostat and Temperature sensor EP

Implemeted thermostat and temperature sensor HA devices + examples.
Implemented configure report handler.
Updated READMEs and description of examples.
Minor code updates

* fix(): Replace deprecated function

* Remove ported IDF examples

* Update Zigbee examples with new APIs

* Dev Update: Version setting, Thermostat fix, ...

Simplified bounded device print as the structure is common for any EP type
Allowed setting custom app version for EP, default is 0
Small fixes and code updates

* Remove EP template + add lib to CMakeLists

* Rename classes to have proper naming

* Add check for SOC_IEEE802154_SUPPORTED

* Ignore false positive unused variable/function

* Fix compilation errors in examples

* Fill keyworkds.txt, remove unnecessary defines

* Rename methods, variables + make private/protected

* Remove unnecesary defaults defines

* Remove outdated comments

* Update Scan networks Readme

* fix(example): Use proper naming of func and variables

* Change virtual methods to callbacks (TODO)

* Refactor classes methods + implement Identify command

* Apply suggestions from code review by @lucasssvaz

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update READMEs + add openNetwork fucntion

* Use [[maybe_unused]] instead of #pragma

* Use gpio calls for OnOff Light example

* ci(pre-commit): Apply automatic fixes

* fix(): Codespell issues

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-10-02 17:00:39 +03:00
.github ci(json): Add configuration requirements to ci.json files (#10385) 2024-09-30 13:43:50 +03:00
cores/esp32 fix(hid): Fix OUTPUT report not received (#10398) 2024-10-02 15:34:27 +03:00
docs ci(json): Add configuration requirements to ci.json files (#10385) 2024-09-30 13:43:50 +03:00
idf_component_examples Update Matter Light README.md (#10357) 2024-09-24 18:26:34 +03:00
libraries feat(zigbee): Add Zigbee library (#10265) 2024-10-02 17:00:39 +03:00
package IDF release/v5.1 (#10320) 2024-09-18 14:52:03 +03:00
tests ci(json): Add configuration requirements to ci.json files (#10385) 2024-09-30 13:43:50 +03:00
tools fix(spelling): Fix misspellings detected by codespell and enable it (#10232) 2024-08-28 15:43:02 +03:00
variants Added Sparkfun ESP32-S3 Thing Plus board (#10382) 2024-09-30 13:14:30 +03:00
.clang-format refactor(style): Change some style options (#9526) 2024-04-19 18:16:55 +03:00
.codespellrc fix(spelling): Fix misspellings detected by codespell and enable it (#10232) 2024-08-28 15:43:02 +03:00
.editorconfig Style Checker and Pre-commit hook CI (#9132) 2024-04-15 18:41:51 +03:00
.flake8 ci(performance): Add performance tests to CI (#9560) 2024-05-07 13:16:13 +02:00
.gitignore fix(get.py): Remove existing files before extracting (#10247) 2024-08-28 09:54:52 +03:00
.gitmodules v2.0.0 Add support for ESP32S2 and update ESP-IDF to 4.4 (#4996) 2021-04-05 14:23:58 +03:00
.pre-commit-config.yaml feat(pre-commit): Add JSON formatter to pre-commit hooks (#10324) 2024-09-11 15:18:03 +03:00
.prettierignore Style Checker and Pre-commit hook CI (#9132) 2024-04-15 18:41:51 +03:00
.readthedocs.yaml Removed YML wron file and changed the YAML (#8785) 2023-10-20 16:35:06 +03:00
.vale.ini docs(vale): Enable vale and fix errors (#10231) 2024-08-28 15:48:18 +03:00
boards.txt feat(zigbee): Add Zigbee library (#10265) 2024-10-02 17:00:39 +03:00
CMakeLists.txt feat(zigbee): Add Zigbee library (#10265) 2024-10-02 17:00:39 +03:00
CODE_OF_CONDUCT.md fix(spelling): Fix misspellings detected by codespell and enable it (#10232) 2024-08-28 15:43:02 +03:00
idf_component.yml ESP Matter + Arduino as IDF Component Light example (#10290) 2024-09-18 14:51:46 +03:00
Kconfig.projbuild feat(net): Switch to typedefs for WiFiClient, WiFiServer, WiFiUdp and WiFiClientSecure (#9909) 2024-06-24 10:26:22 +03:00
LICENSE.md Refactor repository with pre-commit hooks (#9515) 2024-04-15 19:40:56 +03:00
package.json Update core version to 3.0.5 2024-09-18 14:54:00 +03:00
platform.txt fix(5.1): ESP32 redefinition to ESP32 2024-10-02 15:44:06 +03:00
programmers.txt Add support for ArduinoIDE 2.0.0 (#6506) 2022-04-04 17:19:23 +03:00
README.md fix(readme): Update badge for Build status (#10097) 2024-07-31 15:17:11 +03:00

Arduino core for the ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2

Build Status External Libraries Test Hardware Tests

Need help or have a question? Join the chat at Gitter or open a new Discussion

Contents

Development Status

Latest Stable Release Release Version Release Date Downloads

Latest Development Release Release Version Release Date Downloads

Development Planning

Our Development is fully tracked on this public Roadmap 🎉

For even more information you can join our Monthly Community Meetings 🔔.

Documentation

You can use the Arduino-ESP32 Online Documentation to get all information about this project.


Migration guide from version 2.x to 3.x is available here.


APIs compatibility with ESP8266 and Arduino-CORE (Arduino.cc) is explained here.


Supported Chips

Here are the ESP32 series supported by the Arduino-ESP32 project:

SoC Stable Development Datasheet
ESP32 Yes Yes ESP32
ESP32-S2 Yes Yes ESP32-S2
ESP32-C3 Yes Yes ESP32-C3
ESP32-S3 Yes Yes ESP32-S3
ESP32-C6 Yes Yes ESP32-C6
ESP32-H2 Yes Yes ESP32-H2

Note

ESP32-C2 is also supported by Arduino-ESP32 but requires rebuilding the static libraries. This is not trivial and requires a good understanding of the ESP-IDF build system. For more information, see the Lib Builder documentation.

For more details visit the supported chips documentation page.

Decoding exceptions

You can use EspExceptionDecoder to get meaningful call trace.

Issue/Bug report template

Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labeled as Type: For reference.

Finally, if you are sure no one else had the issue, follow the Issue template or Feature request template while reporting any new Issue.

External libraries compilation test

We have set-up CI testing for external libraries for ESP32 Arduino core. You can check test results in the file LIBRARIES_TEST. For more information and how to add your library to the test see external library testing in the documentation.

Contributing

We welcome contributions to the Arduino ESP32 project!

See contributing in the documentation for more information on how to contribute to the project.

We would like to have this repository in a polite and friendly atmosphere, so please be kind and respectful to others. For more details, look at Code of Conduct.