@@ -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,13 +5006,13 @@ 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;
5007
5012
kWake = 4;
5008
5013
kVacation = 5;
5009
- kUserDefined = 6;
5014
+ kGoingToSleep = 6;
5015
+ kUserDefined = 254;
5010
5016
}
5011
5017
5012
5018
enum SetpointChangeSourceEnum : enum8 {
@@ -5072,7 +5078,6 @@ cluster Thermostat = 513 {
5072
5078
kLocalTemperatureNotExposed = 0x40;
5073
5079
kMatterScheduleConfiguration = 0x80;
5074
5080
kPresets = 0x100;
5075
- kSetpoints = 0x200;
5076
5081
}
5077
5082
5078
5083
bitmap HVACSystemTypeBitmap : bitmap8 {
@@ -5082,6 +5087,10 @@ cluster Thermostat = 513 {
5082
5087
kHeatingUsesFuel = 0x20;
5083
5088
}
5084
5089
5090
+ bitmap OccupancyBitmap : bitmap8 {
5091
+ kOccupied = 0x1;
5092
+ }
5093
+
5085
5094
bitmap PresetTypeFeaturesBitmap : bitmap16 {
5086
5095
kAutomatic = 0x1;
5087
5096
kSupportsNames = 0x2;
@@ -5132,11 +5141,6 @@ cluster Thermostat = 513 {
5132
5141
kSupportsOff = 0x8;
5133
5142
}
5134
5143
5135
- bitmap TemperatureSetpointHoldPolicyBitmap : bitmap8 {
5136
- kHoldDurationElapsed = 0x1;
5137
- kHoldDurationElapsedOrPresetChanged = 0x2;
5138
- }
5139
-
5140
5144
struct ScheduleTransitionStruct {
5141
5145
ScheduleDayOfWeekBitmap dayOfWeek = 0;
5142
5146
int16u transitionTime = 1;
@@ -5152,7 +5156,12 @@ cluster Thermostat = 513 {
5152
5156
optional char_string<64> name = 2;
5153
5157
optional octet_string<16> presetHandle = 3;
5154
5158
ScheduleTransitionStruct transitions[] = 4;
5155
- optional nullable boolean builtIn = 5;
5159
+ nullable boolean builtIn = 5;
5160
+ }
5161
+
5162
+ struct AtomicAttributeStatusStruct {
5163
+ optional attrib_id attributeID = 0;
5164
+ optional status statusCode = 1;
5156
5165
}
5157
5166
5158
5167
struct PresetStruct {
@@ -5184,23 +5193,23 @@ cluster Thermostat = 513 {
5184
5193
5185
5194
readonly attribute nullable temperature localTemperature = 0;
5186
5195
readonly attribute optional nullable temperature outdoorTemperature = 1;
5187
- readonly attribute optional bitmap8 occupancy = 2;
5196
+ readonly attribute optional OccupancyBitmap occupancy = 2;
5188
5197
readonly attribute optional temperature absMinHeatSetpointLimit = 3;
5189
5198
readonly attribute optional temperature absMaxHeatSetpointLimit = 4;
5190
5199
readonly attribute optional temperature absMinCoolSetpointLimit = 5;
5191
5200
readonly attribute optional temperature absMaxCoolSetpointLimit = 6;
5192
5201
readonly attribute optional int8u PICoolingDemand = 7;
5193
5202
readonly attribute optional int8u PIHeatingDemand = 8;
5194
- attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9;
5203
+ attribute access(write: manage) optional HVACSystemTypeBitmap HVACSystemTypeConfiguration = 9;
5195
5204
attribute access(write: manage) optional int8s localTemperatureCalibration = 16;
5196
- attribute optional int16s occupiedCoolingSetpoint = 17;
5197
- attribute optional int16s occupiedHeatingSetpoint = 18;
5198
- attribute optional int16s unoccupiedCoolingSetpoint = 19;
5199
- attribute optional int16s unoccupiedHeatingSetpoint = 20;
5200
- attribute access(write: manage) optional int16s minHeatSetpointLimit = 21;
5201
- attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22;
5202
- attribute access(write: manage) optional int16s minCoolSetpointLimit = 23;
5203
- 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;
5204
5213
attribute access(write: manage) optional int8s minSetpointDeadBand = 25;
5205
5214
attribute access(write: manage) optional RemoteSensingBitmap remoteSensing = 26;
5206
5215
attribute access(write: manage) ControlSequenceOfOperationEnum controlSequenceOfOperation = 27;
@@ -5230,7 +5239,7 @@ cluster Thermostat = 513 {
5230
5239
attribute access(write: manage) optional ACErrorCodeBitmap ACErrorCode = 68;
5231
5240
attribute access(write: manage) optional ACLouverPositionEnum ACLouverPosition = 69;
5232
5241
readonly attribute optional nullable temperature ACCoilTemperature = 70;
5233
- attribute access(write: manage) optional ACCapacityFormatEnum ACCapacityformat = 71;
5242
+ attribute access(write: manage) optional ACCapacityFormatEnum ACCapacityFormat = 71;
5234
5243
readonly attribute optional PresetTypeStruct presetTypes[] = 72;
5235
5244
readonly attribute optional ScheduleTypeStruct scheduleTypes[] = 73;
5236
5245
readonly attribute optional int8u numberOfPresets = 74;
@@ -5241,9 +5250,7 @@ cluster Thermostat = 513 {
5241
5250
readonly attribute optional nullable octet_string<16> activeScheduleHandle = 79;
5242
5251
attribute access(write: manage) optional PresetStruct presets[] = 80;
5243
5252
attribute access(write: manage) optional ScheduleStruct schedules[] = 81;
5244
- readonly attribute optional boolean presetsSchedulesEditable = 82;
5245
- readonly attribute optional TemperatureSetpointHoldPolicyBitmap temperatureSetpointHoldPolicy = 83;
5246
- readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 84;
5253
+ readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 82;
5247
5254
readonly attribute command_id generatedCommandList[] = 65528;
5248
5255
readonly attribute command_id acceptedCommandList[] = 65529;
5249
5256
readonly attribute event_id eventList[] = 65530;
@@ -5283,34 +5290,32 @@ cluster Thermostat = 513 {
5283
5290
octet_string<16> presetHandle = 0;
5284
5291
}
5285
5292
5286
- request struct StartPresetsSchedulesEditRequestRequest {
5287
- int16u timeoutSeconds = 0;
5293
+ response struct AtomicResponse = 253 {
5294
+ status statusCode = 0;
5295
+ AtomicAttributeStatusStruct attributeStatus[] = 1;
5296
+ optional int16u timeout = 2;
5288
5297
}
5289
5298
5290
- request struct SetTemperatureSetpointHoldPolicyRequest {
5291
- TemperatureSetpointHoldPolicyBitmap temperatureSetpointHoldPolicy = 0;
5299
+ request struct AtomicRequestRequest {
5300
+ AtomicRequestTypeEnum requestType = 0;
5301
+ attrib_id attributeRequests[] = 1;
5302
+ optional int16u timeout = 2;
5292
5303
}
5293
5304
5294
- /** 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. */
5295
5306
command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0;
5296
- /** Command description for SetWeeklySchedule */
5307
+ /** Upon receipt, the weekly schedule for updating setpoints SHALL be stored in the */
5297
5308
command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1;
5298
- /** Command description for GetWeeklySchedule */
5309
+ /** Upon receipt, the unit SHOULD send in return the Get */
5299
5310
command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2;
5300
- /** 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. */
5301
5312
command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3;
5302
- /** This command is used to set the active schedule. */
5313
+ /** Upon receipt, if the */
5303
5314
command SetActiveScheduleRequest(SetActiveScheduleRequestRequest): DefaultSuccess = 5;
5304
- /** This command is used to set the active preset. */
5315
+ /** ID */
5305
5316
command SetActivePresetRequest(SetActivePresetRequestRequest): DefaultSuccess = 6;
5306
- /** This command is used to start editing the presets and schedules. */
5307
- command access(invoke: manage) StartPresetsSchedulesEditRequest(StartPresetsSchedulesEditRequestRequest): DefaultSuccess = 7;
5308
- /** This command is used to cancel editing presets and schedules. */
5309
- command access(invoke: manage) CancelPresetsSchedulesEditRequest(): DefaultSuccess = 8;
5310
- /** This command is used to notify the server that all edits are done and should be committed. */
5311
- command access(invoke: manage) CommitPresetsSchedulesRequest(): DefaultSuccess = 9;
5312
- /** This command sets the set point hold policy. */
5313
- command SetTemperatureSetpointHoldPolicy(SetTemperatureSetpointHoldPolicyRequest): DefaultSuccess = 11;
5317
+ /** Begins, Commits or Cancels an atomic write */
5318
+ command access(invoke: manage) AtomicRequest(AtomicRequestRequest): AtomicResponse = 254;
5314
5319
}
5315
5320
5316
5321
/** An interface for controlling a fan in a heating/cooling system. */
@@ -8597,8 +8602,6 @@ endpoint 1 {
8597
8602
ram attribute activeScheduleHandle;
8598
8603
callback attribute presets;
8599
8604
callback attribute schedules;
8600
- ram attribute presetsSchedulesEditable;
8601
- ram attribute temperatureSetpointHoldPolicy default = 0;
8602
8605
ram attribute setpointHoldExpiryTimestamp;
8603
8606
callback attribute generatedCommandList;
8604
8607
callback attribute acceptedCommandList;
@@ -8608,6 +8611,8 @@ endpoint 1 {
8608
8611
ram attribute clusterRevision default = 6;
8609
8612
8610
8613
handle command SetpointRaiseLower;
8614
+ handle command AtomicResponse;
8615
+ handle command AtomicRequest;
8611
8616
}
8612
8617
8613
8618
server cluster FanControl {
0 commit comments