Skip to content

Commit e758d48

Browse files
PeterC1965restyled-commitsandy31415andreilitvinjmartinez-silabs
authored andcommitted
Add WHM to the all clusters app (project-chip#34456)
* Add WHM to the all clusters app * Restyled by whitespace * Restyled by clang-format * Restyled by gn * Fix CI test * Address review comments from JamesH * Address review comments from JamesH * Address review comments from JamesH * Restyled by clang-format * Get tests passing again * Restyled by clang-format * Declare some global items for future testing (project-chip#34509) Co-authored-by: Andrei Litvin <andreilitvin@google.com> * [LevelControl] Implemented the Q quality logic for the CurrentLevel a… (project-chip#34488) * Implemented the Quiete reporting quality logic for the CurrentLevel and RemainingTime attributes * Restyled by clang-format * use c++ struct rather than c struct format * add cluster-building-blocks to the data model public dep --------- Co-authored-by: Restyled.io <commits@restyled.io> * Revert thermostat stuff breaking tot (project-chip#34518) * Revert "update tests and thermostat server cluster for new constraints for LocalTemperatureCalibration and MinSetpointDeadBand (project-chip#34474)" This reverts commit 335ac96. * Revert "update constraints for LocalTemperatureCalibration and MinSetpointDeadBand attributes (project-chip#34473)" This reverts commit 21a5bd6. * [Telink] Update Docker image (Zephyr update) (project-chip#34503) * Add TransportPayloadCapability flag for GetConnectedDevices and bubble (project-chip#34450) up the flag to the wrapper IM Python APIs. Add python script binding methods for LargePayload tests --to check if session allows large payload. --to close the underlying TCP connection. --to check if the session is active. * Remove no-longer-used MTRDevice logic for truncating data version lists (project-chip#34183) * Remove no-longer-used MTRDevice logic for truncating data version lists After project-chip#34111, ReadClient handles this logic itself, so the attempted truncation in MTRDevice was now dead code. * Address review comment. * Fix compile issues. * Address another review comment. * Address review comment. * Address review comments by JamesH * Remove unnecessary include file * Address further review comments from JamhesH * Restyled by whitespace * Restyled by clang-format * Address further review comments from JamesH * Address further review comments from JamesH * Update examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Update examples/all-clusters-app/all-clusters-common/src/WhmManufacturer.cpp Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Update examples/all-clusters-app/all-clusters-common/src/WhmManufacturer.cpp Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Undo suggested change from Boris as idx needed in the loop * Update examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp Co-authored-by: lpbeliveau-silabs <112982107+lpbeliveau-silabs@users.noreply.github.com> * Address review comments --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Andrei Litvin <andy314@gmail.com> Co-authored-by: Andrei Litvin <andreilitvin@google.com> Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com> Co-authored-by: C Freeman <cecille@google.com> Co-authored-by: Alex Tsitsiura <s07641069@gmail.com> Co-authored-by: Pradip De <pradipd@google.com> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> Co-authored-by: jamesharrow <93921463+jamesharrow@users.noreply.github.com> Co-authored-by: lpbeliveau-silabs <112982107+lpbeliveau-silabs@users.noreply.github.com>
1 parent 906d7f0 commit e758d48

File tree

19 files changed

+1792
-14
lines changed

19 files changed

+1792
-14
lines changed

examples/all-clusters-app/all-clusters-common/all-clusters-app.matter

+76
Original file line numberDiff line numberDiff line change
@@ -4092,6 +4092,64 @@ cluster ElectricalEnergyMeasurement = 145 {
40924092
readonly attribute int16u clusterRevision = 65533;
40934093
}
40944094

4095+
/** This cluster is used to allow clients to control the operation of a hot water heating appliance so that it can be used with energy management. */
4096+
provisional cluster WaterHeaterManagement = 148 {
4097+
revision 1;
4098+
4099+
enum BoostStateEnum : enum8 {
4100+
kInactive = 0;
4101+
kActive = 1;
4102+
}
4103+
4104+
bitmap Feature : bitmap32 {
4105+
kEnergyManagement = 0x1;
4106+
kTankPercent = 0x2;
4107+
}
4108+
4109+
bitmap WaterHeaterDemandBitmap : bitmap8 {
4110+
kImmersionElement1 = 0x1;
4111+
kImmersionElement2 = 0x2;
4112+
kHeatPump = 0x4;
4113+
kBoiler = 0x8;
4114+
kOther = 0x10;
4115+
}
4116+
4117+
bitmap WaterHeaterTypeBitmap : bitmap8 {
4118+
kImmersionElement1 = 0x1;
4119+
kImmersionElement2 = 0x2;
4120+
kHeatPump = 0x4;
4121+
kBoiler = 0x8;
4122+
kOther = 0x10;
4123+
}
4124+
4125+
readonly attribute WaterHeaterTypeBitmap heaterTypes = 0;
4126+
readonly attribute WaterHeaterDemandBitmap heatDemand = 1;
4127+
readonly attribute optional int16u tankVolume = 2;
4128+
readonly attribute optional energy_mwh estimatedHeatRequired = 3;
4129+
readonly attribute optional percent tankPercentage = 4;
4130+
readonly attribute BoostStateEnum boostState = 5;
4131+
readonly attribute command_id generatedCommandList[] = 65528;
4132+
readonly attribute command_id acceptedCommandList[] = 65529;
4133+
readonly attribute event_id eventList[] = 65530;
4134+
readonly attribute attrib_id attributeList[] = 65531;
4135+
readonly attribute bitmap32 featureMap = 65532;
4136+
readonly attribute int16u clusterRevision = 65533;
4137+
4138+
request struct BoostRequest {
4139+
elapsed_s duration = 0;
4140+
optional boolean oneShot = 1;
4141+
optional boolean emergencyBoost = 2;
4142+
optional temperature temporarySetpoint = 3;
4143+
optional percent targetPercentage = 4;
4144+
optional percent targetReheat = 5;
4145+
}
4146+
4147+
/** Allows a client to request that the water heater is put into a Boost state. */
4148+
command access(invoke: manage) Boost(BoostRequest): DefaultSuccess = 0;
4149+
/** Allows a client to cancel an ongoing Boost operation. */
4150+
command access(invoke: manage) CancelBoost(): DefaultSuccess = 1;
4151+
}
4152+
40954153
/** This cluster allows a client to manage the power draw of a device. An example of such a client could be an Energy Management System (EMS) which controls an Energy Smart Appliance (ESA). */
40964154
provisional cluster DeviceEnergyManagement = 152 {
40974155
revision 4;
@@ -8434,6 +8492,24 @@ endpoint 1 {
84348492
ram attribute clusterRevision default = 1;
84358493
}
84368494

8495+
server cluster WaterHeaterManagement {
8496+
callback attribute heaterTypes;
8497+
callback attribute heatDemand;
8498+
callback attribute tankVolume;
8499+
callback attribute estimatedHeatRequired;
8500+
callback attribute tankPercentage;
8501+
callback attribute boostState;
8502+
callback attribute generatedCommandList;
8503+
callback attribute acceptedCommandList;
8504+
callback attribute eventList;
8505+
callback attribute attributeList;
8506+
callback attribute featureMap;
8507+
callback attribute clusterRevision;
8508+
8509+
handle command Boost;
8510+
handle command CancelBoost;
8511+
}
8512+
84378513
server cluster DeviceEnergyManagement {
84388514
emits event PowerAdjustStart;
84398515
emits event PowerAdjustEnd;

examples/all-clusters-app/all-clusters-common/all-clusters-app.zap

+221
Original file line numberDiff line numberDiff line change
@@ -13413,6 +13413,227 @@
1341313413
}
1341413414
]
1341513415
},
13416+
{
13417+
"name": "Water Heater Management",
13418+
"code": 148,
13419+
"mfgCode": null,
13420+
"define": "WATER_HEATER_MANAGEMENT_CLUSTER",
13421+
"side": "server",
13422+
"enabled": 1,
13423+
"apiMaturity": "provisional",
13424+
"commands": [
13425+
{
13426+
"name": "Boost",
13427+
"code": 0,
13428+
"mfgCode": null,
13429+
"source": "client",
13430+
"isIncoming": 1,
13431+
"isEnabled": 1
13432+
},
13433+
{
13434+
"name": "CancelBoost",
13435+
"code": 1,
13436+
"mfgCode": null,
13437+
"source": "client",
13438+
"isIncoming": 1,
13439+
"isEnabled": 1
13440+
}
13441+
],
13442+
"attributes": [
13443+
{
13444+
"name": "HeaterTypes",
13445+
"code": 0,
13446+
"mfgCode": null,
13447+
"side": "server",
13448+
"type": "WaterHeaterTypeBitmap",
13449+
"included": 1,
13450+
"storageOption": "External",
13451+
"singleton": 0,
13452+
"bounded": 0,
13453+
"defaultValue": null,
13454+
"reportable": 1,
13455+
"minInterval": 1,
13456+
"maxInterval": 65534,
13457+
"reportableChange": 0
13458+
},
13459+
{
13460+
"name": "HeatDemand",
13461+
"code": 1,
13462+
"mfgCode": null,
13463+
"side": "server",
13464+
"type": "WaterHeaterDemandBitmap",
13465+
"included": 1,
13466+
"storageOption": "External",
13467+
"singleton": 0,
13468+
"bounded": 0,
13469+
"defaultValue": null,
13470+
"reportable": 1,
13471+
"minInterval": 1,
13472+
"maxInterval": 65534,
13473+
"reportableChange": 0
13474+
},
13475+
{
13476+
"name": "TankVolume",
13477+
"code": 2,
13478+
"mfgCode": null,
13479+
"side": "server",
13480+
"type": "int16u",
13481+
"included": 1,
13482+
"storageOption": "External",
13483+
"singleton": 0,
13484+
"bounded": 0,
13485+
"defaultValue": null,
13486+
"reportable": 1,
13487+
"minInterval": 1,
13488+
"maxInterval": 65534,
13489+
"reportableChange": 0
13490+
},
13491+
{
13492+
"name": "EstimatedHeatRequired",
13493+
"code": 3,
13494+
"mfgCode": null,
13495+
"side": "server",
13496+
"type": "energy_mwh",
13497+
"included": 1,
13498+
"storageOption": "External",
13499+
"singleton": 0,
13500+
"bounded": 0,
13501+
"defaultValue": null,
13502+
"reportable": 1,
13503+
"minInterval": 1,
13504+
"maxInterval": 65534,
13505+
"reportableChange": 0
13506+
},
13507+
{
13508+
"name": "TankPercentage",
13509+
"code": 4,
13510+
"mfgCode": null,
13511+
"side": "server",
13512+
"type": "percent",
13513+
"included": 1,
13514+
"storageOption": "External",
13515+
"singleton": 0,
13516+
"bounded": 0,
13517+
"defaultValue": null,
13518+
"reportable": 1,
13519+
"minInterval": 1,
13520+
"maxInterval": 65534,
13521+
"reportableChange": 0
13522+
},
13523+
{
13524+
"name": "BoostState",
13525+
"code": 5,
13526+
"mfgCode": null,
13527+
"side": "server",
13528+
"type": "BoostStateEnum",
13529+
"included": 1,
13530+
"storageOption": "External",
13531+
"singleton": 0,
13532+
"bounded": 0,
13533+
"defaultValue": null,
13534+
"reportable": 1,
13535+
"minInterval": 1,
13536+
"maxInterval": 65534,
13537+
"reportableChange": 0
13538+
},
13539+
{
13540+
"name": "GeneratedCommandList",
13541+
"code": 65528,
13542+
"mfgCode": null,
13543+
"side": "server",
13544+
"type": "array",
13545+
"included": 1,
13546+
"storageOption": "External",
13547+
"singleton": 0,
13548+
"bounded": 0,
13549+
"defaultValue": null,
13550+
"reportable": 1,
13551+
"minInterval": 1,
13552+
"maxInterval": 65534,
13553+
"reportableChange": 0
13554+
},
13555+
{
13556+
"name": "AcceptedCommandList",
13557+
"code": 65529,
13558+
"mfgCode": null,
13559+
"side": "server",
13560+
"type": "array",
13561+
"included": 1,
13562+
"storageOption": "External",
13563+
"singleton": 0,
13564+
"bounded": 0,
13565+
"defaultValue": null,
13566+
"reportable": 1,
13567+
"minInterval": 1,
13568+
"maxInterval": 65534,
13569+
"reportableChange": 0
13570+
},
13571+
{
13572+
"name": "EventList",
13573+
"code": 65530,
13574+
"mfgCode": null,
13575+
"side": "server",
13576+
"type": "array",
13577+
"included": 1,
13578+
"storageOption": "External",
13579+
"singleton": 0,
13580+
"bounded": 0,
13581+
"defaultValue": null,
13582+
"reportable": 1,
13583+
"minInterval": 1,
13584+
"maxInterval": 65534,
13585+
"reportableChange": 0
13586+
},
13587+
{
13588+
"name": "AttributeList",
13589+
"code": 65531,
13590+
"mfgCode": null,
13591+
"side": "server",
13592+
"type": "array",
13593+
"included": 1,
13594+
"storageOption": "External",
13595+
"singleton": 0,
13596+
"bounded": 0,
13597+
"defaultValue": null,
13598+
"reportable": 1,
13599+
"minInterval": 1,
13600+
"maxInterval": 65534,
13601+
"reportableChange": 0
13602+
},
13603+
{
13604+
"name": "FeatureMap",
13605+
"code": 65532,
13606+
"mfgCode": null,
13607+
"side": "server",
13608+
"type": "bitmap32",
13609+
"included": 1,
13610+
"storageOption": "External",
13611+
"singleton": 0,
13612+
"bounded": 0,
13613+
"defaultValue": null,
13614+
"reportable": 1,
13615+
"minInterval": 1,
13616+
"maxInterval": 65534,
13617+
"reportableChange": 0
13618+
},
13619+
{
13620+
"name": "ClusterRevision",
13621+
"code": 65533,
13622+
"mfgCode": null,
13623+
"side": "server",
13624+
"type": "int16u",
13625+
"included": 1,
13626+
"storageOption": "External",
13627+
"singleton": 0,
13628+
"bounded": 0,
13629+
"defaultValue": null,
13630+
"reportable": 1,
13631+
"minInterval": 1,
13632+
"maxInterval": 65534,
13633+
"reportableChange": 0
13634+
}
13635+
]
13636+
},
1341613637
{
1341713638
"name": "Device Energy Management",
1341813639
"code": 152,

0 commit comments

Comments
 (0)