Skip to content

[WIP] Allow setting Matter TagList attribute#11516

Draft
lboue wants to merge 2 commits into
espressif:masterfrom
lboue:NamespaceSwitches
Draft

[WIP] Allow setting Matter TagList attribute#11516
lboue wants to merge 2 commits into
espressif:masterfrom
lboue:NamespaceSwitches

Conversation

@lboue
Copy link
Copy Markdown
Contributor

@lboue lboue commented Jun 24, 2025

By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes

Checklist

  1. Please provide specific title of the PR describing the change, including the component name (eg. „Update of Documentation link on Readme.md“)
  2. Please provide related links (eg. Issue which will be closed by this Pull Request)
  3. Please update relevant Documentation if applicable
  4. Please check Contributing guide
  5. Please confirm option to "Allow edits and access to secrets by maintainers" when opening a Pull Request

This entire section above can be deleted if all items are checked.


Description of Change

Please describe your proposed Pull Request and it's impact.

Tests scenarios

Please describe on what Hardware and Software combinations you have tested this Pull Request and how.

(eg. I have tested my Pull Request on Arduino-esp32 core v2.0.2 with ESP32 and ESP32-S2 Board with this scenario)

Related links

issue: #11515

(eg. Closes #number of issue)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 24, 2025

Warnings
⚠️

The source branch "NamespaceSwitches" incorrect format:

  • contains uppercase letters. This can cause troubles on case-insensitive file systems (macOS).
    Please rename your branch.

👋 Hello lboue, 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 ...


This automated output is generated by the PR linter DangerJS, which checks if your Pull Request meets the project's requirements and helps you fix potential issues.

DangerJS is triggered with each push event to a Pull Request and modify the contents of this comment.

Please consider the following:
- Danger mainly focuses on the PR structure and formatting and can't understand the meaning behind your code or changes.
- Danger is not a substitute for human code reviews; it's still important to request a code review from your colleagues.
- Resolve all warnings (⚠️ ) before requesting a review from human reviewers - they will appreciate it.
- To manually retry these Danger checks, please navigate to the Actions tab and re-run last Danger workflow.

Review and merge process you can expect ...


We do welcome contributions in the form of bug reports, feature requests and pull requests.

1. An internal issue has been created for the PR, we assign it to the relevant engineer.
2. They review the PR and either approve it or ask you for changes or clarifications.
3. Once the GitHub PR is approved we do the final review, collect approvals from core owners and make sure all the automated tests are passing.
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
4. If the change is approved and passes the tests it is merged into the default branch.

Generated by 🚫 dangerJS against c3f8a85

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 24, 2025

Test Results

 90 files   90 suites   31m 57s ⏱️
 66 tests  66 ✅ 0 💤 0 ❌
675 runs  675 ✅ 0 💤 0 ❌

Results for commit c3f8a85.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 24, 2025

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.

MemoryFLASH [bytes]FLASH [%]RAM [bytes]RAM [%]
TargetDECINCDECINCDECINCDECINC
ESP32C5000.000.00000.000.00
ESP32S3000.000.00000.000.00
ESP32S20⚠️ +1840.00⚠️ +0.010⚠️ +480.00⚠️ +0.05
ESP32C30⚠️ +3220.00⚠️ +0.020⚠️ +480.00⚠️ +0.05
ESP32C6000.000.00000.000.00
ESP32H20⚠️ +3200.00⚠️ +0.010⚠️ +480.00⚠️ +0.04
ESP320⚠️ +2080.00⚠️ +0.010⚠️ +560.00⚠️ +0.05
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32C5ESP32S3ESP32S2ESP32C3ESP32C6ESP32H2ESP32
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
libraries/Matter/examples/MatterColorLight----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +116⚠️ +48
libraries/Matter/examples/MatterCommissionTest----⚠️ +96⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +124⚠️ +48
libraries/Matter/examples/MatterComposedLights----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +116⚠️ +48
libraries/Matter/examples/MatterContactSensor----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterDimmableLight----⚠️ +96⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterDimmablePlugin----⚠️ +100⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterEnhancedColorLight----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +116⚠️ +48
libraries/Matter/examples/MatterEvents----⚠️ +100⚠️ +48⚠️ +202⚠️ +48--⚠️ +206⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterFan----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +80⚠️ +48
libraries/Matter/examples/MatterHumiditySensor----⚠️ +100⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs----⚠️ +108⚠️ +48⚠️ +206⚠️ +48--⚠️ +206⚠️ +48⚠️ +136⚠️ +48
libraries/Matter/examples/MatterMinimum----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +96⚠️ +48
libraries/Matter/examples/MatterOccupancySensor----⚠️ +108⚠️ +48⚠️ +202⚠️ +48--⚠️ +204⚠️ +48⚠️ +100⚠️ +56
libraries/Matter/examples/MatterOccupancyWithHoldTime----⚠️ +108⚠️ +48⚠️ +204⚠️ +48--⚠️ +206⚠️ +48⚠️ +116⚠️ +56
libraries/Matter/examples/MatterOnIdentify----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterOnOffLight----⚠️ +112⚠️ +48⚠️ +204⚠️ +48--⚠️ +204⚠️ +48⚠️ +84⚠️ +48
libraries/Matter/examples/MatterOnOffPlugin----⚠️ +112⚠️ +48⚠️ +206⚠️ +48--⚠️ +206⚠️ +48⚠️ +124⚠️ +48
libraries/Matter/examples/MatterPressureSensor----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +202⚠️ +48⚠️ +112⚠️ +48
libraries/Matter/examples/MatterRainSensor----⚠️ +104⚠️ +48⚠️ +202⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterSimpleBlinds----⚠️ +108⚠️ +48⚠️ +202⚠️ +48--⚠️ +202⚠️ +48⚠️ +116⚠️ +48
libraries/Matter/examples/MatterSmartButton----⚠️ +184⚠️ +48⚠️ +322⚠️ +48--⚠️ +320⚠️ +48⚠️ +208⚠️ +48
libraries/Matter/examples/MatterStatus----⚠️ +108⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +148⚠️ +48
libraries/Matter/examples/MatterTemperatureControlledCabinet----⚠️ +104⚠️ +48⚠️ +202⚠️ +48--⚠️ +202⚠️ +48⚠️ +124⚠️ +48
libraries/Matter/examples/MatterTemperatureControlledCabinetLevels----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +100⚠️ +48
libraries/Matter/examples/MatterTemperatureLight----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +116⚠️ +48
libraries/Matter/examples/MatterTemperatureSensor----⚠️ +100⚠️ +48⚠️ +200⚠️ +48--⚠️ +202⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterThermostat----⚠️ +104⚠️ +48⚠️ +200⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterWaterFreezeDetector----⚠️ +104⚠️ +48⚠️ +202⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterWaterLeakDetector----⚠️ +104⚠️ +48⚠️ +202⚠️ +48--⚠️ +200⚠️ +48⚠️ +120⚠️ +48
libraries/Matter/examples/MatterWindowCovering----⚠️ +112⚠️ +48⚠️ +202⚠️ +48--⚠️ +200⚠️ +48⚠️ +92⚠️ +48

@SuGlider SuGlider self-assigned this Jun 25, 2025
@SuGlider SuGlider added Type: Feature request Feature request for Arduino ESP32 Area: Matter Issues and Feature Request about Matter Protocol labels Jun 25, 2025
@SuGlider SuGlider moved this from Todo to In Progress in Arduino ESP32 Core Project Roadmap Jun 25, 2025
@SuGlider SuGlider added this to the 3.2.1 milestone Jun 25, 2025
@SuGlider
Copy link
Copy Markdown
Collaborator

@lboue - can you elaborate more about this feature? How can I test it? Please explain the usage based on this PR.

Let's get it done.

@lboue
Copy link
Copy Markdown
Contributor Author

lboue commented Dec 30, 2025

I would like to create a multi-button device.
To distinguish between the different buttons, I will need to use tags for each of the endpoints that correspond to a button.

The expected logic is described here: #11515

Testing
A modified version of Home Assistant is used for testing. This is not yet officially supported.

@SuGlider
Copy link
Copy Markdown
Collaborator

Testing
A modified version of Home Assistant is used for testing. This is not yet officially supported.

I see. This is a similar task to adding the HoldTime to the occupancy sensor.
TagList is flagged as a MANAGED_INTERNALLY Attribute.
Therefore it will require to create an AttributeAccessInterface class for it in order to be able to set an Array with the Tags.

I'll try to get it done.

Please tell me in more details how can I test it using a modified version of HA.

@lboue
Copy link
Copy Markdown
Contributor Author

lboue commented Dec 30, 2025

You could use one HA core PR in this list:
home-assistant/core#147339
home-assistant/core#152754

For the moment, this has not been successful due to translation issues, but it works correctly in English.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: Matter Issues and Feature Request about Matter Protocol Type: Feature request Feature request for Arduino ESP32

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants