Skip to content

Commit 5216415

Browse files
committed
Regenerate XML and convert thermostat-server to atomic writes
1 parent 48ac309 commit 5216415

File tree

65 files changed

+2208
-2216
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+2208
-2216
lines changed

examples/air-purifier-app/air-purifier-common/air-purifier-app.matter

+47-31
Original file line numberDiff line numberDiff line change
@@ -1225,7 +1225,7 @@ cluster ActivatedCarbonFilterMonitoring = 114 {
12251225

12261226
/** An interface for configuring and controlling the functionality of a thermostat. */
12271227
cluster Thermostat = 513 {
1228-
revision 6;
1228+
revision 7;
12291229

12301230
enum ACCapacityFormatEnum : enum8 {
12311231
kBTUh = 0;
@@ -1261,6 +1261,12 @@ cluster Thermostat = 513 {
12611261
kHeatPumpInverter = 4;
12621262
}
12631263

1264+
enum AtomicRequestTypeEnum : enum8 {
1265+
kBeginWrite = 0;
1266+
kCommitWrite = 1;
1267+
kRollbackWrite = 2;
1268+
}
1269+
12641270
enum ControlSequenceOfOperationEnum : enum8 {
12651271
kCoolingOnly = 0;
12661272
kCoolingWithReheat = 1;
@@ -1271,7 +1277,6 @@ cluster Thermostat = 513 {
12711277
}
12721278

12731279
enum PresetScenarioEnum : enum8 {
1274-
kUnspecified = 0;
12751280
kOccupied = 1;
12761281
kUnoccupied = 2;
12771282
kSleep = 3;
@@ -1344,7 +1349,6 @@ cluster Thermostat = 513 {
13441349
kLocalTemperatureNotExposed = 0x40;
13451350
kMatterScheduleConfiguration = 0x80;
13461351
kPresets = 0x100;
1347-
kSetpoints = 0x200;
13481352
}
13491353

13501354
bitmap HVACSystemTypeBitmap : bitmap8 {
@@ -1354,6 +1358,10 @@ cluster Thermostat = 513 {
13541358
kHeatingUsesFuel = 0x20;
13551359
}
13561360

1361+
bitmap OccupancyBitmap : bitmap8 {
1362+
kOccupied = 0x1;
1363+
}
1364+
13571365
bitmap PresetTypeFeaturesBitmap : bitmap16 {
13581366
kAutomatic = 0x1;
13591367
kSupportsNames = 0x2;
@@ -1419,7 +1427,12 @@ cluster Thermostat = 513 {
14191427
optional char_string<64> name = 2;
14201428
optional octet_string<16> presetHandle = 3;
14211429
ScheduleTransitionStruct transitions[] = 4;
1422-
optional nullable boolean builtIn = 5;
1430+
nullable boolean builtIn = 5;
1431+
}
1432+
1433+
struct AtomicAttributeStatusStruct {
1434+
attrib_id attributeID = 0;
1435+
status statusCode = 1;
14231436
}
14241437

14251438
struct PresetStruct {
@@ -1451,23 +1464,23 @@ cluster Thermostat = 513 {
14511464

14521465
readonly attribute nullable temperature localTemperature = 0;
14531466
readonly attribute optional nullable temperature outdoorTemperature = 1;
1454-
readonly attribute optional bitmap8 occupancy = 2;
1467+
readonly attribute optional OccupancyBitmap occupancy = 2;
14551468
readonly attribute optional temperature absMinHeatSetpointLimit = 3;
14561469
readonly attribute optional temperature absMaxHeatSetpointLimit = 4;
14571470
readonly attribute optional temperature absMinCoolSetpointLimit = 5;
14581471
readonly attribute optional temperature absMaxCoolSetpointLimit = 6;
14591472
readonly attribute optional int8u PICoolingDemand = 7;
14601473
readonly attribute optional int8u PIHeatingDemand = 8;
1461-
attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9;
1474+
attribute access(write: manage) optional HVACSystemTypeBitmap HVACSystemTypeConfiguration = 9;
14621475
attribute access(write: manage) optional int8s localTemperatureCalibration = 16;
1463-
attribute optional int16s occupiedCoolingSetpoint = 17;
1464-
attribute optional int16s occupiedHeatingSetpoint = 18;
1465-
attribute optional int16s unoccupiedCoolingSetpoint = 19;
1466-
attribute optional int16s unoccupiedHeatingSetpoint = 20;
1467-
attribute access(write: manage) optional int16s minHeatSetpointLimit = 21;
1468-
attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22;
1469-
attribute access(write: manage) optional int16s minCoolSetpointLimit = 23;
1470-
attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24;
1476+
attribute optional temperature occupiedCoolingSetpoint = 17;
1477+
attribute optional temperature occupiedHeatingSetpoint = 18;
1478+
attribute optional temperature unoccupiedCoolingSetpoint = 19;
1479+
attribute optional temperature unoccupiedHeatingSetpoint = 20;
1480+
attribute access(write: manage) optional temperature minHeatSetpointLimit = 21;
1481+
attribute access(write: manage) optional temperature maxHeatSetpointLimit = 22;
1482+
attribute access(write: manage) optional temperature minCoolSetpointLimit = 23;
1483+
attribute access(write: manage) optional temperature maxCoolSetpointLimit = 24;
14711484
attribute access(write: manage) optional int8s minSetpointDeadBand = 25;
14721485
attribute access(write: manage) optional RemoteSensingBitmap remoteSensing = 26;
14731486
attribute access(write: manage) ControlSequenceOfOperationEnum controlSequenceOfOperation = 27;
@@ -1497,7 +1510,7 @@ cluster Thermostat = 513 {
14971510
attribute access(write: manage) optional ACErrorCodeBitmap ACErrorCode = 68;
14981511
attribute access(write: manage) optional ACLouverPositionEnum ACLouverPosition = 69;
14991512
readonly attribute optional nullable temperature ACCoilTemperature = 70;
1500-
attribute access(write: manage) optional ACCapacityFormatEnum ACCapacityformat = 71;
1513+
attribute access(write: manage) optional ACCapacityFormatEnum ACCapacityFormat = 71;
15011514
readonly attribute optional PresetTypeStruct presetTypes[] = 72;
15021515
readonly attribute optional ScheduleTypeStruct scheduleTypes[] = 73;
15031516
readonly attribute optional int8u numberOfPresets = 74;
@@ -1508,8 +1521,7 @@ cluster Thermostat = 513 {
15081521
readonly attribute optional nullable octet_string<16> activeScheduleHandle = 79;
15091522
attribute access(write: manage) optional PresetStruct presets[] = 80;
15101523
attribute access(write: manage) optional ScheduleStruct schedules[] = 81;
1511-
readonly attribute optional boolean presetsSchedulesEditable = 82;
1512-
readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 83;
1524+
readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 82;
15131525
readonly attribute command_id generatedCommandList[] = 65528;
15141526
readonly attribute command_id acceptedCommandList[] = 65529;
15151527
readonly attribute event_id eventList[] = 65530;
@@ -1549,28 +1561,32 @@ cluster Thermostat = 513 {
15491561
octet_string<16> presetHandle = 0;
15501562
}
15511563

1552-
request struct StartPresetsSchedulesEditRequestRequest {
1553-
int16u timeoutSeconds = 0;
1564+
response struct AtomicResponse = 253 {
1565+
status statusCode = 0;
1566+
AtomicAttributeStatusStruct attributeStatus[] = 1;
1567+
optional int16u timeout = 2;
1568+
}
1569+
1570+
request struct AtomicRequestRequest {
1571+
AtomicRequestTypeEnum requestType = 0;
1572+
attrib_id attributeRequests[] = 1;
1573+
optional int16u timeout = 2;
15541574
}
15551575

1556-
/** Command description for SetpointRaiseLower */
1576+
/** Upon receipt, the attributes for the indicated setpoint(s) SHALL have the amount specified in the Amount field added to them. */
15571577
command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0;
1558-
/** Command description for SetWeeklySchedule */
1578+
/** Upon receipt, the weekly schedule for updating setpoints SHALL be stored in the */
15591579
command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1;
1560-
/** Command description for GetWeeklySchedule */
1580+
/** Upon receipt, the unit SHOULD send in return the Get */
15611581
command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2;
1562-
/** This command is used to clear the weekly schedule. The ClearWeeklySchedule command has no payload. */
1582+
/** This command is used to clear the weekly schedule. */
15631583
command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3;
1564-
/** This command is used to set the active schedule. */
1584+
/** Upon receipt, if the */
15651585
command SetActiveScheduleRequest(SetActiveScheduleRequestRequest): DefaultSuccess = 5;
1566-
/** This command is used to set the active preset. */
1586+
/** ID */
15671587
command SetActivePresetRequest(SetActivePresetRequestRequest): DefaultSuccess = 6;
1568-
/** This command is used to start editing the presets and schedules. */
1569-
command access(invoke: manage) StartPresetsSchedulesEditRequest(StartPresetsSchedulesEditRequestRequest): DefaultSuccess = 7;
1570-
/** This command is used to cancel editing presets and schedules. */
1571-
command access(invoke: manage) CancelPresetsSchedulesEditRequest(): DefaultSuccess = 8;
1572-
/** This command is used to notify the server that all edits are done and should be committed. */
1573-
command access(invoke: manage) CommitPresetsSchedulesRequest(): DefaultSuccess = 9;
1588+
/** Begins, Commits or Cancels an atomic write */
1589+
command access(invoke: manage) AtomicRequest(AtomicRequestRequest): AtomicResponse = 254;
15741590
}
15751591

15761592
/** An interface for controlling a fan in a heating/cooling system. */

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

+48-33
Original file line numberDiff line numberDiff line change
@@ -4954,7 +4954,7 @@ cluster PumpConfigurationAndControl = 512 {
49544954

49554955
/** An interface for configuring and controlling the functionality of a thermostat. */
49564956
cluster Thermostat = 513 {
4957-
revision 6;
4957+
revision 7;
49584958

49594959
enum ACCapacityFormatEnum : enum8 {
49604960
kBTUh = 0;
@@ -4990,6 +4990,12 @@ cluster Thermostat = 513 {
49904990
kHeatPumpInverter = 4;
49914991
}
49924992

4993+
enum AtomicRequestTypeEnum : enum8 {
4994+
kBeginWrite = 0;
4995+
kCommitWrite = 1;
4996+
kRollbackWrite = 2;
4997+
}
4998+
49934999
enum ControlSequenceOfOperationEnum : enum8 {
49945000
kCoolingOnly = 0;
49955001
kCoolingWithReheat = 1;
@@ -5000,7 +5006,6 @@ cluster Thermostat = 513 {
50005006
}
50015007

50025008
enum PresetScenarioEnum : enum8 {
5003-
kUnspecified = 0;
50045009
kOccupied = 1;
50055010
kUnoccupied = 2;
50065011
kSleep = 3;
@@ -5073,7 +5078,6 @@ cluster Thermostat = 513 {
50735078
kLocalTemperatureNotExposed = 0x40;
50745079
kMatterScheduleConfiguration = 0x80;
50755080
kPresets = 0x100;
5076-
kSetpoints = 0x200;
50775081
}
50785082

50795083
bitmap HVACSystemTypeBitmap : bitmap8 {
@@ -5083,6 +5087,10 @@ cluster Thermostat = 513 {
50835087
kHeatingUsesFuel = 0x20;
50845088
}
50855089

5090+
bitmap OccupancyBitmap : bitmap8 {
5091+
kOccupied = 0x1;
5092+
}
5093+
50865094
bitmap PresetTypeFeaturesBitmap : bitmap16 {
50875095
kAutomatic = 0x1;
50885096
kSupportsNames = 0x2;
@@ -5148,7 +5156,12 @@ cluster Thermostat = 513 {
51485156
optional char_string<64> name = 2;
51495157
optional octet_string<16> presetHandle = 3;
51505158
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;
51525165
}
51535166

51545167
struct PresetStruct {
@@ -5180,23 +5193,23 @@ cluster Thermostat = 513 {
51805193

51815194
readonly attribute nullable temperature localTemperature = 0;
51825195
readonly attribute optional nullable temperature outdoorTemperature = 1;
5183-
readonly attribute optional bitmap8 occupancy = 2;
5196+
readonly attribute optional OccupancyBitmap occupancy = 2;
51845197
readonly attribute optional temperature absMinHeatSetpointLimit = 3;
51855198
readonly attribute optional temperature absMaxHeatSetpointLimit = 4;
51865199
readonly attribute optional temperature absMinCoolSetpointLimit = 5;
51875200
readonly attribute optional temperature absMaxCoolSetpointLimit = 6;
51885201
readonly attribute optional int8u PICoolingDemand = 7;
51895202
readonly attribute optional int8u PIHeatingDemand = 8;
5190-
attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9;
5203+
attribute access(write: manage) optional HVACSystemTypeBitmap HVACSystemTypeConfiguration = 9;
51915204
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;
52005213
attribute access(write: manage) optional int8s minSetpointDeadBand = 25;
52015214
attribute access(write: manage) optional RemoteSensingBitmap remoteSensing = 26;
52025215
attribute access(write: manage) ControlSequenceOfOperationEnum controlSequenceOfOperation = 27;
@@ -5226,7 +5239,7 @@ cluster Thermostat = 513 {
52265239
attribute access(write: manage) optional ACErrorCodeBitmap ACErrorCode = 68;
52275240
attribute access(write: manage) optional ACLouverPositionEnum ACLouverPosition = 69;
52285241
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;
52305243
readonly attribute optional PresetTypeStruct presetTypes[] = 72;
52315244
readonly attribute optional ScheduleTypeStruct scheduleTypes[] = 73;
52325245
readonly attribute optional int8u numberOfPresets = 74;
@@ -5237,8 +5250,7 @@ cluster Thermostat = 513 {
52375250
readonly attribute optional nullable octet_string<16> activeScheduleHandle = 79;
52385251
attribute access(write: manage) optional PresetStruct presets[] = 80;
52395252
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;
52425254
readonly attribute command_id generatedCommandList[] = 65528;
52435255
readonly attribute command_id acceptedCommandList[] = 65529;
52445256
readonly attribute event_id eventList[] = 65530;
@@ -5278,28 +5290,32 @@ cluster Thermostat = 513 {
52785290
octet_string<16> presetHandle = 0;
52795291
}
52805292

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;
52835303
}
52845304

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. */
52865306
command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0;
5287-
/** Command description for SetWeeklySchedule */
5307+
/** Upon receipt, the weekly schedule for updating setpoints SHALL be stored in the */
52885308
command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1;
5289-
/** Command description for GetWeeklySchedule */
5309+
/** Upon receipt, the unit SHOULD send in return the Get */
52905310
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. */
52925312
command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3;
5293-
/** This command is used to set the active schedule. */
5313+
/** Upon receipt, if the */
52945314
command SetActiveScheduleRequest(SetActiveScheduleRequestRequest): DefaultSuccess = 5;
5295-
/** This command is used to set the active preset. */
5315+
/** ID */
52965316
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;
53035319
}
53045320

53055321
/** An interface for controlling a fan in a heating/cooling system. */
@@ -8586,8 +8602,7 @@ endpoint 1 {
85868602
ram attribute activeScheduleHandle;
85878603
callback attribute presets;
85888604
callback attribute schedules;
8589-
ram attribute presetsSchedulesEditable;
8590-
ram attribute setpointHoldExpiryTimestamp default = 0;
8605+
ram attribute setpointHoldExpiryTimestamp;
85918606
callback attribute generatedCommandList;
85928607
callback attribute acceptedCommandList;
85938608
callback attribute eventList;

0 commit comments

Comments
 (0)