@@ -4954,7 +4954,7 @@ cluster PumpConfigurationAndControl = 512 {
4954
4954
4955
4955
/** An interface for configuring and controlling the functionality of a thermostat. */
4956
4956
cluster Thermostat = 513 {
4957
- revision 6 ;
4957
+ revision 7 ;
4958
4958
4959
4959
enum ACCapacityFormatEnum : enum8 {
4960
4960
kBTUh = 0;
@@ -4990,6 +4990,12 @@ cluster Thermostat = 513 {
4990
4990
kHeatPumpInverter = 4;
4991
4991
}
4992
4992
4993
+ enum AtomicRequestTypeEnum : enum8 {
4994
+ kBeginWrite = 0;
4995
+ kCommitWrite = 1;
4996
+ kRollbackWrite = 2;
4997
+ }
4998
+
4993
4999
enum ControlSequenceOfOperationEnum : enum8 {
4994
5000
kCoolingOnly = 0;
4995
5001
kCoolingWithReheat = 1;
@@ -5000,7 +5006,6 @@ cluster Thermostat = 513 {
5000
5006
}
5001
5007
5002
5008
enum PresetScenarioEnum : enum8 {
5003
- kUnspecified = 0;
5004
5009
kOccupied = 1;
5005
5010
kUnoccupied = 2;
5006
5011
kSleep = 3;
@@ -5073,7 +5078,6 @@ cluster Thermostat = 513 {
5073
5078
kLocalTemperatureNotExposed = 0x40;
5074
5079
kMatterScheduleConfiguration = 0x80;
5075
5080
kPresets = 0x100;
5076
- kSetpoints = 0x200;
5077
5081
}
5078
5082
5079
5083
bitmap HVACSystemTypeBitmap : bitmap8 {
@@ -5083,6 +5087,10 @@ cluster Thermostat = 513 {
5083
5087
kHeatingUsesFuel = 0x20;
5084
5088
}
5085
5089
5090
+ bitmap OccupancyBitmap : bitmap8 {
5091
+ kOccupied = 0x1;
5092
+ }
5093
+
5086
5094
bitmap PresetTypeFeaturesBitmap : bitmap16 {
5087
5095
kAutomatic = 0x1;
5088
5096
kSupportsNames = 0x2;
@@ -5148,7 +5156,12 @@ cluster Thermostat = 513 {
5148
5156
optional char_string<64> name = 2;
5149
5157
optional octet_string<16> presetHandle = 3;
5150
5158
ScheduleTransitionStruct transitions[] = 4;
5151
- optional nullable boolean builtIn = 5;
5159
+ nullable boolean builtIn = 5;
5160
+ }
5161
+
5162
+ struct AtomicAttributeStatusStruct {
5163
+ attrib_id attributeID = 0;
5164
+ status statusCode = 1;
5152
5165
}
5153
5166
5154
5167
struct PresetStruct {
@@ -5180,23 +5193,23 @@ cluster Thermostat = 513 {
5180
5193
5181
5194
readonly attribute nullable temperature localTemperature = 0;
5182
5195
readonly attribute optional nullable temperature outdoorTemperature = 1;
5183
- readonly attribute optional bitmap8 occupancy = 2;
5196
+ readonly attribute optional OccupancyBitmap occupancy = 2;
5184
5197
readonly attribute optional temperature absMinHeatSetpointLimit = 3;
5185
5198
readonly attribute optional temperature absMaxHeatSetpointLimit = 4;
5186
5199
readonly attribute optional temperature absMinCoolSetpointLimit = 5;
5187
5200
readonly attribute optional temperature absMaxCoolSetpointLimit = 6;
5188
5201
readonly attribute optional int8u PICoolingDemand = 7;
5189
5202
readonly attribute optional int8u PIHeatingDemand = 8;
5190
- attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9;
5203
+ attribute access(write: manage) optional HVACSystemTypeBitmap HVACSystemTypeConfiguration = 9;
5191
5204
attribute access(write: manage) optional int8s localTemperatureCalibration = 16;
5192
- attribute optional int16s occupiedCoolingSetpoint = 17;
5193
- attribute optional int16s occupiedHeatingSetpoint = 18;
5194
- attribute optional int16s unoccupiedCoolingSetpoint = 19;
5195
- attribute optional int16s unoccupiedHeatingSetpoint = 20;
5196
- attribute access(write: manage) optional int16s minHeatSetpointLimit = 21;
5197
- attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22;
5198
- attribute access(write: manage) optional int16s minCoolSetpointLimit = 23;
5199
- attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24;
5205
+ attribute optional temperature occupiedCoolingSetpoint = 17;
5206
+ attribute optional temperature occupiedHeatingSetpoint = 18;
5207
+ attribute optional temperature unoccupiedCoolingSetpoint = 19;
5208
+ attribute optional temperature unoccupiedHeatingSetpoint = 20;
5209
+ attribute access(write: manage) optional temperature minHeatSetpointLimit = 21;
5210
+ attribute access(write: manage) optional temperature maxHeatSetpointLimit = 22;
5211
+ attribute access(write: manage) optional temperature minCoolSetpointLimit = 23;
5212
+ attribute access(write: manage) optional temperature maxCoolSetpointLimit = 24;
5200
5213
attribute access(write: manage) optional int8s minSetpointDeadBand = 25;
5201
5214
attribute access(write: manage) optional RemoteSensingBitmap remoteSensing = 26;
5202
5215
attribute access(write: manage) ControlSequenceOfOperationEnum controlSequenceOfOperation = 27;
@@ -5226,7 +5239,7 @@ cluster Thermostat = 513 {
5226
5239
attribute access(write: manage) optional ACErrorCodeBitmap ACErrorCode = 68;
5227
5240
attribute access(write: manage) optional ACLouverPositionEnum ACLouverPosition = 69;
5228
5241
readonly attribute optional nullable temperature ACCoilTemperature = 70;
5229
- attribute access(write: manage) optional ACCapacityFormatEnum ACCapacityformat = 71;
5242
+ attribute access(write: manage) optional ACCapacityFormatEnum ACCapacityFormat = 71;
5230
5243
readonly attribute optional PresetTypeStruct presetTypes[] = 72;
5231
5244
readonly attribute optional ScheduleTypeStruct scheduleTypes[] = 73;
5232
5245
readonly attribute optional int8u numberOfPresets = 74;
@@ -5237,8 +5250,7 @@ cluster Thermostat = 513 {
5237
5250
readonly attribute optional nullable octet_string<16> activeScheduleHandle = 79;
5238
5251
attribute access(write: manage) optional PresetStruct presets[] = 80;
5239
5252
attribute access(write: manage) optional ScheduleStruct schedules[] = 81;
5240
- readonly attribute optional boolean presetsSchedulesEditable = 82;
5241
- readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 83;
5253
+ readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 82;
5242
5254
readonly attribute command_id generatedCommandList[] = 65528;
5243
5255
readonly attribute command_id acceptedCommandList[] = 65529;
5244
5256
readonly attribute event_id eventList[] = 65530;
@@ -5278,28 +5290,32 @@ cluster Thermostat = 513 {
5278
5290
octet_string<16> presetHandle = 0;
5279
5291
}
5280
5292
5281
- request struct StartPresetsSchedulesEditRequestRequest {
5282
- int16u timeoutSeconds = 0;
5293
+ response struct AtomicResponse = 253 {
5294
+ status statusCode = 0;
5295
+ AtomicAttributeStatusStruct attributeStatus[] = 1;
5296
+ optional int16u timeout = 2;
5297
+ }
5298
+
5299
+ request struct AtomicRequestRequest {
5300
+ AtomicRequestTypeEnum requestType = 0;
5301
+ attrib_id attributeRequests[] = 1;
5302
+ optional int16u timeout = 2;
5283
5303
}
5284
5304
5285
- /** Command description for SetpointRaiseLower */
5305
+ /** Upon receipt, the attributes for the indicated setpoint(s) SHALL have the amount specified in the Amount field added to them. */
5286
5306
command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0;
5287
- /** Command description for SetWeeklySchedule */
5307
+ /** Upon receipt, the weekly schedule for updating setpoints SHALL be stored in the */
5288
5308
command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1;
5289
- /** Command description for GetWeeklySchedule */
5309
+ /** Upon receipt, the unit SHOULD send in return the Get */
5290
5310
command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2;
5291
- /** This command is used to clear the weekly schedule. The ClearWeeklySchedule command has no payload. */
5311
+ /** This command is used to clear the weekly schedule. */
5292
5312
command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3;
5293
- /** This command is used to set the active schedule. */
5313
+ /** Upon receipt, if the */
5294
5314
command SetActiveScheduleRequest(SetActiveScheduleRequestRequest): DefaultSuccess = 5;
5295
- /** This command is used to set the active preset. */
5315
+ /** ID */
5296
5316
command SetActivePresetRequest(SetActivePresetRequestRequest): DefaultSuccess = 6;
5297
- /** This command is used to start editing the presets and schedules. */
5298
- command access(invoke: manage) StartPresetsSchedulesEditRequest(StartPresetsSchedulesEditRequestRequest): DefaultSuccess = 7;
5299
- /** This command is used to cancel editing presets and schedules. */
5300
- command access(invoke: manage) CancelPresetsSchedulesEditRequest(): DefaultSuccess = 8;
5301
- /** This command is used to notify the server that all edits are done and should be committed. */
5302
- command access(invoke: manage) CommitPresetsSchedulesRequest(): DefaultSuccess = 9;
5317
+ /** Begins, Commits or Cancels an atomic write */
5318
+ command access(invoke: manage) AtomicRequest(AtomicRequestRequest): AtomicResponse = 254;
5303
5319
}
5304
5320
5305
5321
/** An interface for controlling a fan in a heating/cooling system. */
@@ -8586,8 +8602,7 @@ endpoint 1 {
8586
8602
ram attribute activeScheduleHandle;
8587
8603
callback attribute presets;
8588
8604
callback attribute schedules;
8589
- ram attribute presetsSchedulesEditable;
8590
- ram attribute setpointHoldExpiryTimestamp default = 0;
8605
+ ram attribute setpointHoldExpiryTimestamp;
8591
8606
callback attribute generatedCommandList;
8592
8607
callback attribute acceptedCommandList;
8593
8608
callback attribute eventList;
0 commit comments