Skip to content
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

Add WHM to the all clusters app #34456

Merged
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
03e95d4
Add WHM to the all clusters app
PeterC1965 Jul 23, 2024
5fcf76f
Restyled by whitespace
restyled-commits Jul 23, 2024
05b3809
Restyled by clang-format
restyled-commits Jul 23, 2024
2949013
Restyled by gn
restyled-commits Jul 23, 2024
39275f3
Fix CI test
PeterC1965 Jul 23, 2024
bb44cf2
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 24, 2024
871ee38
Address review comments from JamesH
PeterC1965 Jul 25, 2024
b359764
Address review comments from JamesH
PeterC1965 Jul 25, 2024
97d6354
Address review comments from JamesH
PeterC1965 Jul 25, 2024
1976356
Restyled by clang-format
restyled-commits Jul 25, 2024
13bfff9
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 25, 2024
b017a85
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 25, 2024
58fcfa7
Get tests passing again
PeterC1965 Jul 25, 2024
8e94baa
Restyled by clang-format
restyled-commits Jul 25, 2024
d9c58ca
Declare some global items for future testing (#34509)
andy31415 Jul 25, 2024
e794db3
[LevelControl] Implemented the Q quality logic for the CurrentLevel a…
jmartinez-silabs Jul 25, 2024
51650bf
Revert thermostat stuff breaking tot (#34518)
cecille Jul 25, 2024
a13bd22
[Telink] Update Docker image (Zephyr update) (#34503)
s07641069 Jul 25, 2024
66c416e
Add TransportPayloadCapability flag for GetConnectedDevices and bubbl…
pidarped Jul 25, 2024
d59cb02
Remove no-longer-used MTRDevice logic for truncating data version lis…
bzbarsky-apple Jul 25, 2024
c7f48a0
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 26, 2024
0f98024
Address review comments by JamesH
PeterC1965 Jul 26, 2024
a28ed8c
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 26, 2024
5b7455d
Remove unnecessary include file
PeterC1965 Jul 26, 2024
742e0a9
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 27, 2024
5f5fbff
Address further review comments from JamhesH
PeterC1965 Jul 28, 2024
21ad85f
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 28, 2024
f38b2f4
Restyled by whitespace
restyled-commits Jul 28, 2024
5964de9
Restyled by clang-format
restyled-commits Jul 28, 2024
44c333f
Address further review comments from JamesH
PeterC1965 Jul 28, 2024
c13aca1
Address further review comments from JamesH
PeterC1965 Jul 28, 2024
713fad0
Update examples/all-clusters-app/all-clusters-common/src/WhmDelegateI…
jamesharrow Jul 28, 2024
dc64dc5
Update examples/all-clusters-app/all-clusters-common/src/WhmManufactu…
PeterC1965 Jul 29, 2024
966c7a1
Update examples/all-clusters-app/all-clusters-common/src/WhmManufactu…
PeterC1965 Jul 29, 2024
c45decd
Undo suggested change from Boris as idx needed in the loop
PeterC1965 Jul 29, 2024
a7f74bd
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 29, 2024
15fed34
Merge branch 'master' into add-water-heater-management-to-all-cluster…
PeterC1965 Jul 29, 2024
8278e25
Update examples/all-clusters-app/all-clusters-common/src/WhmDelegateI…
PeterC1965 Jul 29, 2024
47d0f32
Address review comments
PeterC1965 Jul 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4092,6 +4092,64 @@ cluster ElectricalEnergyMeasurement = 145 {
readonly attribute int16u clusterRevision = 65533;
}

/** 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. */
provisional cluster WaterHeaterManagement = 148 {
revision 1;

enum BoostStateEnum : enum8 {
kInactive = 0;
kActive = 1;
}

bitmap Feature : bitmap32 {
kEnergyManagement = 0x1;
kTankPercent = 0x2;
}

bitmap WaterHeaterDemandBitmap : bitmap8 {
kImmersionElement1 = 0x1;
kImmersionElement2 = 0x2;
kHeatPump = 0x4;
kBoiler = 0x8;
kOther = 0x10;
}

bitmap WaterHeaterTypeBitmap : bitmap8 {
kImmersionElement1 = 0x1;
kImmersionElement2 = 0x2;
kHeatPump = 0x4;
kBoiler = 0x8;
kOther = 0x10;
}

readonly attribute WaterHeaterTypeBitmap heaterTypes = 0;
readonly attribute WaterHeaterDemandBitmap heatDemand = 1;
readonly attribute optional int16u tankVolume = 2;
readonly attribute optional energy_mwh estimatedHeatRequired = 3;
readonly attribute optional percent tankPercentage = 4;
readonly attribute BoostStateEnum boostState = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;

request struct BoostRequest {
elapsed_s duration = 0;
optional boolean oneShot = 1;
optional boolean emergencyBoost = 2;
optional temperature temporarySetpoint = 3;
optional percent targetPercentage = 4;
optional percent targetReheat = 5;
}

/** Allows a client to request that the water heater is put into a Boost state. */
command access(invoke: manage) Boost(BoostRequest): DefaultSuccess = 0;
/** Allows a client to cancel an ongoing Boost operation. */
command access(invoke: manage) CancelBoost(): DefaultSuccess = 1;
}

/** 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). */
provisional cluster DeviceEnergyManagement = 152 {
revision 4;
Expand Down Expand Up @@ -8434,6 +8492,24 @@ endpoint 1 {
ram attribute clusterRevision default = 1;
}

server cluster WaterHeaterManagement {
callback attribute heaterTypes;
callback attribute heatDemand;
callback attribute tankVolume;
callback attribute estimatedHeatRequired;
callback attribute tankPercentage;
callback attribute boostState;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute eventList;
callback attribute attributeList;
callback attribute featureMap;
callback attribute clusterRevision;

handle command Boost;
handle command CancelBoost;
}

server cluster DeviceEnergyManagement {
emits event PowerAdjustStart;
emits event PowerAdjustEnd;
Expand Down
235 changes: 228 additions & 7 deletions examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
Original file line number Diff line number Diff line change
Expand Up @@ -13413,6 +13413,227 @@
}
]
},
{
"name": "Water Heater Management",
"code": 148,
"mfgCode": null,
"define": "WATER_HEATER_MANAGEMENT_CLUSTER",
"side": "server",
"enabled": 1,
"apiMaturity": "provisional",
"commands": [
{
"name": "Boost",
"code": 0,
"mfgCode": null,
"source": "client",
"isIncoming": 1,
"isEnabled": 1
},
{
"name": "CancelBoost",
"code": 1,
"mfgCode": null,
"source": "client",
"isIncoming": 1,
"isEnabled": 1
}
],
"attributes": [
{
"name": "HeaterTypes",
"code": 0,
"mfgCode": null,
"side": "server",
"type": "WaterHeaterTypeBitmap",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "HeatDemand",
"code": 1,
"mfgCode": null,
"side": "server",
"type": "WaterHeaterDemandBitmap",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "TankVolume",
"code": 2,
"mfgCode": null,
"side": "server",
"type": "int16u",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "EstimatedHeatRequired",
"code": 3,
"mfgCode": null,
"side": "server",
"type": "energy_mwh",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "TankPercentage",
"code": 4,
"mfgCode": null,
"side": "server",
"type": "percent",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "BoostState",
"code": 5,
"mfgCode": null,
"side": "server",
"type": "BoostStateEnum",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "GeneratedCommandList",
"code": 65528,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "AcceptedCommandList",
"code": 65529,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "EventList",
"code": 65530,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "AttributeList",
"code": 65531,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "FeatureMap",
"code": 65532,
"mfgCode": null,
"side": "server",
"type": "bitmap32",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "ClusterRevision",
"code": 65533,
"mfgCode": null,
"side": "server",
"type": "int16u",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
}
]
},
{
"name": "Device Energy Management",
"code": 152,
Expand Down Expand Up @@ -14781,7 +15002,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -14797,7 +15018,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand Down Expand Up @@ -14845,7 +15066,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -14861,7 +15082,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -14877,7 +15098,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -14893,7 +15114,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -14909,7 +15130,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand Down
Loading
Loading