@@ -1428,6 +1428,64 @@ cluster ElectricalEnergyMeasurement = 145 {
1428
1428
readonly attribute int16u clusterRevision = 65533;
1429
1429
}
1430
1430
1431
+ /** 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. */
1432
+ provisional cluster WaterHeaterManagement = 148 {
1433
+ revision 1;
1434
+
1435
+ enum BoostStateEnum : enum8 {
1436
+ kInactive = 0;
1437
+ kActive = 1;
1438
+ }
1439
+
1440
+ bitmap Feature : bitmap32 {
1441
+ kEnergyManagement = 0x1;
1442
+ kTankPercent = 0x2;
1443
+ }
1444
+
1445
+ bitmap WaterHeaterDemandBitmap : bitmap8 {
1446
+ kImmersionElement1 = 0x1;
1447
+ kImmersionElement2 = 0x2;
1448
+ kHeatPump = 0x4;
1449
+ kBoiler = 0x8;
1450
+ kOther = 0x10;
1451
+ }
1452
+
1453
+ bitmap WaterHeaterTypeBitmap : bitmap8 {
1454
+ kImmersionElement1 = 0x1;
1455
+ kImmersionElement2 = 0x2;
1456
+ kHeatPump = 0x4;
1457
+ kBoiler = 0x8;
1458
+ kOther = 0x10;
1459
+ }
1460
+
1461
+ readonly attribute WaterHeaterTypeBitmap heaterTypes = 0;
1462
+ readonly attribute WaterHeaterDemandBitmap heatDemand = 1;
1463
+ readonly attribute optional int16u tankVolume = 2;
1464
+ readonly attribute optional energy_mwh estimatedHeatRequired = 3;
1465
+ readonly attribute optional percent tankPercentage = 4;
1466
+ readonly attribute BoostStateEnum boostState = 5;
1467
+ readonly attribute command_id generatedCommandList[] = 65528;
1468
+ readonly attribute command_id acceptedCommandList[] = 65529;
1469
+ readonly attribute event_id eventList[] = 65530;
1470
+ readonly attribute attrib_id attributeList[] = 65531;
1471
+ readonly attribute bitmap32 featureMap = 65532;
1472
+ readonly attribute int16u clusterRevision = 65533;
1473
+
1474
+ request struct BoostRequest {
1475
+ elapsed_s duration = 0;
1476
+ optional boolean oneShot = 1;
1477
+ optional boolean emergencyBoost = 2;
1478
+ optional temperature temporarySetpoint = 3;
1479
+ optional percent targetPercentage = 4;
1480
+ optional percent targetReheat = 5;
1481
+ }
1482
+
1483
+ /** Allows a client to request that the water heater is put into a Boost state. */
1484
+ command access(invoke: manage) Boost(BoostRequest): DefaultSuccess = 0;
1485
+ /** Allows a client to cancel an ongoing Boost operation. */
1486
+ command access(invoke: manage) CancelBoost(): DefaultSuccess = 1;
1487
+ }
1488
+
1431
1489
/** 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). */
1432
1490
provisional cluster DeviceEnergyManagement = 152 {
1433
1491
revision 4;
@@ -2247,6 +2305,24 @@ endpoint 1 {
2247
2305
ram attribute clusterRevision default = 1;
2248
2306
}
2249
2307
2308
+ server cluster WaterHeaterManagement {
2309
+ callback attribute heaterTypes;
2310
+ callback attribute heatDemand;
2311
+ callback attribute tankVolume;
2312
+ callback attribute estimatedHeatRequired;
2313
+ callback attribute tankPercentage;
2314
+ callback attribute boostState;
2315
+ callback attribute generatedCommandList;
2316
+ callback attribute acceptedCommandList;
2317
+ callback attribute eventList;
2318
+ callback attribute attributeList;
2319
+ callback attribute featureMap;
2320
+ ram attribute clusterRevision default = 1;
2321
+
2322
+ handle command Boost;
2323
+ handle command CancelBoost;
2324
+ }
2325
+
2250
2326
server cluster DeviceEnergyManagement {
2251
2327
emits event PowerAdjustStart;
2252
2328
emits event PowerAdjustEnd;
0 commit comments