-
Notifications
You must be signed in to change notification settings - Fork 7.6k
feat(matter): Adds Matter Events callback plus example #11465
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
base: master
Are you sure you want to change the base?
Conversation
👋 Hello SuGlider, we appreciate your contribution to this project! 📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more. 🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project. Click to see more instructions ...
Review and merge process you can expect ...
|
Test Results 76 files 76 suites 12m 44s ⏱️ Results for commit 4b3f58f. ♻️ This comment has been updated with latest results. |
Memory usage test (comparing PR against master branch)The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.
Click to expand the detailed deltas report [usage change in BYTES]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -38,6 +38,133 @@ using namespace esp_matter; | |||
|
|||
class ArduinoMatter { | |||
public: | |||
// Matter Event types used when there is a user callback for Matter Events | |||
enum matterEvent_t { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A suggestion: move the enum outside of the class. It will be in line with other events in the core
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a Matter Events callback mechanism in the ESP32 Arduino Matter library and provides an example sketch and CI config demonstrating its use.
- Adds a
matterEvent_t
enum mapping CHIPDeviceEventType
values plus ESP32-specific events. - Implements
onEvent()
to register and invoke a user callback for all Matter events. - Supplies a new example project (
MatterEvents
) and CI settings.
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
libraries/Matter/src/MatterEndPoint.h | Updated NULL returns/checks to use nullptr for consistency. |
libraries/Matter/src/Matter.h | Added matterEvent_t enum and onEvent callback API. |
libraries/Matter/src/Matter.cpp | Defined static callback, invoke it in app_event_cb , and adjusted log level. |
libraries/Matter/examples/MatterEvents/ci.json | New CI configuration for the MatterEvents example. |
libraries/Matter/examples/MatterEvents/MatterEvents.ino | New example sketch showcasing event callback usage. |
Comments suppressed due to low confidence (2)
libraries/Matter/src/Matter.h:126
- The
MATTER_ESP32_SPECIFIC_EVENT
enum entry is documented as starting at 0x9000 but isn’t explicitly assigned that value. Consider initializing it explicitly (e.g.,= 0x9000
) to ensure it falls in the intended range.
MATTER_ESP32_SPECIFIC_EVENT, // value is previous + 1
libraries/Matter/src/Matter.cpp:127
- The new callback invocation logic isn’t covered by existing tests. Consider adding unit or integration tests to verify that
onEvent
callbacks are registered and invoked correctly.
if (ArduinoMatter::_matterEventCB != nullptr) {
// Commissioning Session Stopped: Signals that Commissioning session has stopped | ||
MATTER_COMMISSIONING_SESSION_STOPPED = (uint16_t) chip::DeviceLayer::DeviceEventType::kCommissioningSessionStopped, | ||
|
||
// Commissioning Window Opened: Signals that Commissioning window is now opend |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in comment: replace "opend" with "opened" for clarity.
// Commissioning Window Opened: Signals that Commissioning window is now opend | |
// Commissioning Window Opened: Signals that Commissioning window is now opened |
Copilot uses AI. Check for mistakes.
Serial.println("====> Decommissioning in 60 seconds. <===="); | ||
delay(60000); | ||
Matter.decommission(); | ||
Serial.println("Matter Node is decommissioned. Commsssioning widget shall start over."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in string literal: "Commsssioning" should be "Commissioning".
Serial.println("Matter Node is decommissioned. Commsssioning widget shall start over."); | |
Serial.println("Matter Node is decommissioned. Commissioning widget shall start over."); |
Copilot uses AI. Check for mistakes.
Description of Change
Adds a new feature to ESP32 Arduino Matter Library that allows users to add a Matter Event Callback function.
All possible ESP32 Matter Events are covered in this implementation.
An example sketch is provided.
Tests scenarios
Using the provided example sketch.
Related links
None