Skip to content

Matter Water Heater#181

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

Matter Water Heater#181
Ludovic BOUÉ (lboue) wants to merge 9 commits into
SiliconLabsSoftware:mainfrom
lboue:Matter-WaterHeater

Conversation

@lboue

@lboue Ludovic BOUÉ (lboue) commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Add Matter Water Heater support

Summary

  • Adds a new MatterWaterHeater device class + matter_waterheater example, based on the existing MatterThermostat/DeviceThermostat architecture (single dynamic endpoint, device type 0x050F "Water Heater").
  • Implements three clusters on that endpoint:
    • Thermostat (reused pattern from DeviceThermostat): local temperature, heating setpoint, min/max limits, system mode (HEAT/OFF).
    • WaterHeaterManagement: HeaterTypes, HeatDemand, TankVolume, TankPercentage, BoostState, plus the Boost/CancelBoost commands.
    • WaterHeaterMode: CurrentMode (cross-synced with the Thermostat's SystemMode) and the SupportedModes list attribute, plus the ChangeToMode command.
  • WaterHeaterMode's list attribute and both clusters' commands can't be represented through this library's usual "ember external-attribute" pattern (flat byte-buffer callbacks), since it has no support for list-type attributes or command dispatch. These are instead served through chip::app::AttributeAccessInterface and chip::app::CommandHandlerInterface overrides, registered per-endpoint in begin()/unregistered in end() — the first use of this pattern in the library, should any future device need list attributes or custom commands.

Test plan

  • Compiles cleanly (arduino-cli compile, --warnings all) for nano_matter and xg24explorerkit with protocol_stack=matter.
  • Flashed to a Silicon Labs xG24 Explorer Kit and commissioned into a real Matter fabric.
  • Verified via a Matter node inspector that Endpoint reports device type 0x050F and clusters Descriptor, BridgedDeviceBasicInformation, WaterHeaterManagement, Thermostat, WaterHeaterMode with correct IDs.
  • Added matter_waterheater.ino to test/build/test_build.py's Matter test list for CI coverage.
image

- Introduced MatterWaterHeater class to manage water heater functionalities.
- Implemented DeviceWaterHeater class to handle device-specific attributes and methods.
- Added new device type for Water Heater in MatterEndpoint.h.
- Updated readme.md to include Water Heater in the list of supported devices.
- Implemented necessary attributes and methods for temperature, heating setpoints, tank volume, and boost state management.
- Enhanced MatterDevice.h to include Water Heater as a device type.
@silabs-bozont Tamas Jozsi (silabs-bozont) added the Community contribution PR contents contributed by the community label Jul 6, 2026
@lboue
Ludovic BOUÉ (lboue) marked this pull request as ready for review July 15, 2026 13:13
@silabs-bozont Tamas Jozsi (silabs-bozont) added the Run CI Matter Run Matter specific build tests label Jul 22, 2026
@github-actions github-actions Bot removed the Run CI Matter Run Matter specific build tests label Jul 22, 2026
@silabs-bozont Tamas Jozsi (silabs-bozont) added the Under review Request or issue under review label Jul 23, 2026
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.

2 participants