Skip to content

Add Matter Binding cluster support with switch/light examples - #185

Open
Ludovic BOUÉ (lboue) wants to merge 2 commits into
SiliconLabsSoftware:mainfrom
lboue:Matter-Binding
Open

Add Matter Binding cluster support with switch/light examples#185
Ludovic BOUÉ (lboue) wants to merge 2 commits into
SiliconLabsSoftware:mainfrom
lboue:Matter-Binding

Conversation

@lboue

Copy link
Copy Markdown
Contributor

Summary

  • Closes [request] Add Binding cluster #101 - adds opt-in support for the standard Matter Binding cluster on MatterSwitch (beginWithBinding()), so a switch can be bound directly to another device (e.g. a light) and control it without a hub relaying every command.
  • Adds MatterBindingManager, which serves the Binding cluster's list attribute and dispatches bound OnOff commands over CASE (unicast) or group sessions - built entirely from SDK pieces already available in this repo's vendored SDK/precompiled libs (chip::BindingTable, chip::CASESessionManager, chip::app::CommandSender), since the official bindings cluster server plugin and BindingManager aren't vendored.
  • Plain begin() and the existing matter_switch/matter_lightbulb examples are untouched (verified via arduino-cli compile that the plain matter_switch binary is unchanged byte-for-byte for its non-binding code paths - only a 136-byte flash delta from the new opt-in method existing).
  • Adds two new examples demonstrating the feature: matter_switch_binding and its companion matter_lightbulb_binding (a plain lightbulb - no special code needed on that side).

Test plan

  • arduino-cli compile on nano_matter for matter_switch.ino (regression check, unchanged) - 932496 bytes flash / 140088 bytes RAM
  • arduino-cli compile on nano_matter for matter_switch_binding.ino - 932632 bytes flash / 140088 bytes RAM
  • arduino-cli compile on nano_matter for matter_lightbulb_binding.ino - 925988 bytes flash / 140092 bytes RAM
  • Hardware test: bind a matter_switch_binding device to a matter_lightbulb_binding device via a Matter controller and confirm button presses toggle the light directly

🤖 Generated with Claude Code

@lboue Ludovic BOUÉ (lboue) changed the title Add Matter Binding cluster support to MatterSwitch Add Matter Binding cluster support with switch/light examples Jul 22, 2026
@lboue
Ludovic BOUÉ (lboue) marked this pull request as ready for review July 22, 2026 13:36
@silabs-bozont Tamas Jozsi (silabs-bozont) added Community contribution PR contents contributed by the community Under review Request or issue under review Run CI Matter Run Matter specific build tests labels Jul 23, 2026
@github-actions github-actions Bot removed the Run CI Matter Run Matter specific build tests label Jul 23, 2026
@silabs-bozont Tamas Jozsi (silabs-bozont) added the Run CI Matter Run Matter specific build tests label Jul 24, 2026
@github-actions github-actions Bot removed the Run CI Matter Run Matter specific build tests label Jul 24, 2026
Ludovic BOUÉ (lboue) and others added 2 commits July 31, 2026 14:58
Lets a Matter switch (opt-in via beginWithBinding()) be bound directly to
another device, e.g. a light, and control it without a hub relaying every
command - closes SiliconLabsSoftware#101. Adds MatterBindingManager
to serve the Binding cluster's list attribute and dispatch bound OnOff
commands over CASE/group sessions, built entirely from SDK pieces already
available (BindingTable, CASESessionManager, CommandSender) since the
official bindings cluster server/BindingManager aren't vendored. Plain
begin() and the existing matter_switch/matter_lightbulb examples are
untouched; matter_switch_binding and matter_lightbulb_binding demonstrate
the new opt-in path.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Re-run uncrustify with package/uncrustify.cfg to match the CI check;
whitespace/indentation only, no logic changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Community contribution PR contents contributed by the community Under review Request or issue under review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[request] Add Binding cluster

2 participants