@@ -99,6 +99,12 @@ enum AreaTypeTag : enum8 {
99
99
kWorkshop = 94;
100
100
}
101
101
102
+ enum AtomicRequestTypeEnum : enum8 {
103
+ kBeginWrite = 0;
104
+ kCommitWrite = 1;
105
+ kRollbackWrite = 2;
106
+ }
107
+
102
108
enum FloorSurfaceTag : enum8 {
103
109
kCarpet = 0;
104
110
kCeramic = 1;
@@ -220,6 +226,11 @@ struct LocationDescriptorStruct {
220
226
nullable AreaTypeTag areaType = 2;
221
227
}
222
228
229
+ struct AtomicAttributeStatusStruct {
230
+ attrib_id attributeID = 0;
231
+ status statusCode = 1;
232
+ }
233
+
223
234
/** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */
224
235
cluster Identify = 3 {
225
236
revision 4;
@@ -1520,7 +1531,7 @@ cluster ActivatedCarbonFilterMonitoring = 114 {
1520
1531
1521
1532
/** An interface for configuring and controlling the functionality of a thermostat. */
1522
1533
cluster Thermostat = 513 {
1523
- revision 6 ;
1534
+ revision 7 ;
1524
1535
1525
1536
enum ACCapacityFormatEnum : enum8 {
1526
1537
kBTUh = 0;
@@ -1566,7 +1577,6 @@ cluster Thermostat = 513 {
1566
1577
}
1567
1578
1568
1579
enum PresetScenarioEnum : enum8 {
1569
- kUnspecified = 0;
1570
1580
kOccupied = 1;
1571
1581
kUnoccupied = 2;
1572
1582
kSleep = 3;
@@ -1639,7 +1649,6 @@ cluster Thermostat = 513 {
1639
1649
kLocalTemperatureNotExposed = 0x40;
1640
1650
kMatterScheduleConfiguration = 0x80;
1641
1651
kPresets = 0x100;
1642
- kSetpoints = 0x200;
1643
1652
}
1644
1653
1645
1654
bitmap HVACSystemTypeBitmap : bitmap8 {
@@ -1649,6 +1658,10 @@ cluster Thermostat = 513 {
1649
1658
kHeatingUsesFuel = 0x20;
1650
1659
}
1651
1660
1661
+ bitmap OccupancyBitmap : bitmap8 {
1662
+ kOccupied = 0x1;
1663
+ }
1664
+
1652
1665
bitmap PresetTypeFeaturesBitmap : bitmap16 {
1653
1666
kAutomatic = 0x1;
1654
1667
kSupportsNames = 0x2;
@@ -1714,7 +1727,7 @@ cluster Thermostat = 513 {
1714
1727
optional char_string<64> name = 2;
1715
1728
optional octet_string<16> presetHandle = 3;
1716
1729
ScheduleTransitionStruct transitions[] = 4;
1717
- optional nullable boolean builtIn = 5;
1730
+ nullable boolean builtIn = 5;
1718
1731
}
1719
1732
1720
1733
struct PresetStruct {
@@ -1746,23 +1759,23 @@ cluster Thermostat = 513 {
1746
1759
1747
1760
readonly attribute nullable temperature localTemperature = 0;
1748
1761
readonly attribute optional nullable temperature outdoorTemperature = 1;
1749
- readonly attribute optional bitmap8 occupancy = 2;
1762
+ readonly attribute optional OccupancyBitmap occupancy = 2;
1750
1763
readonly attribute optional temperature absMinHeatSetpointLimit = 3;
1751
1764
readonly attribute optional temperature absMaxHeatSetpointLimit = 4;
1752
1765
readonly attribute optional temperature absMinCoolSetpointLimit = 5;
1753
1766
readonly attribute optional temperature absMaxCoolSetpointLimit = 6;
1754
1767
readonly attribute optional int8u PICoolingDemand = 7;
1755
1768
readonly attribute optional int8u PIHeatingDemand = 8;
1756
- attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9;
1769
+ attribute access(write: manage) optional HVACSystemTypeBitmap HVACSystemTypeConfiguration = 9;
1757
1770
attribute access(write: manage) optional int8s localTemperatureCalibration = 16;
1758
- attribute optional int16s occupiedCoolingSetpoint = 17;
1759
- attribute optional int16s occupiedHeatingSetpoint = 18;
1760
- attribute optional int16s unoccupiedCoolingSetpoint = 19;
1761
- attribute optional int16s unoccupiedHeatingSetpoint = 20;
1762
- attribute access(write: manage) optional int16s minHeatSetpointLimit = 21;
1763
- attribute access(write: manage) optional int16s maxHeatSetpointLimit = 22;
1764
- attribute access(write: manage) optional int16s minCoolSetpointLimit = 23;
1765
- attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24;
1771
+ attribute optional temperature occupiedCoolingSetpoint = 17;
1772
+ attribute optional temperature occupiedHeatingSetpoint = 18;
1773
+ attribute optional temperature unoccupiedCoolingSetpoint = 19;
1774
+ attribute optional temperature unoccupiedHeatingSetpoint = 20;
1775
+ attribute access(write: manage) optional temperature minHeatSetpointLimit = 21;
1776
+ attribute access(write: manage) optional temperature maxHeatSetpointLimit = 22;
1777
+ attribute access(write: manage) optional temperature minCoolSetpointLimit = 23;
1778
+ attribute access(write: manage) optional temperature maxCoolSetpointLimit = 24;
1766
1779
attribute access(write: manage) optional int8s minSetpointDeadBand = 25;
1767
1780
attribute access(write: manage) optional RemoteSensingBitmap remoteSensing = 26;
1768
1781
attribute access(write: manage) ControlSequenceOfOperationEnum controlSequenceOfOperation = 27;
@@ -1803,8 +1816,7 @@ cluster Thermostat = 513 {
1803
1816
readonly attribute optional nullable octet_string<16> activeScheduleHandle = 79;
1804
1817
attribute access(write: manage) optional PresetStruct presets[] = 80;
1805
1818
attribute access(write: manage) optional ScheduleStruct schedules[] = 81;
1806
- readonly attribute optional boolean presetsSchedulesEditable = 82;
1807
- readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 83;
1819
+ readonly attribute optional nullable epoch_s setpointHoldExpiryTimestamp = 82;
1808
1820
readonly attribute command_id generatedCommandList[] = 65528;
1809
1821
readonly attribute command_id acceptedCommandList[] = 65529;
1810
1822
readonly attribute event_id eventList[] = 65530;
@@ -1844,28 +1856,32 @@ cluster Thermostat = 513 {
1844
1856
octet_string<16> presetHandle = 0;
1845
1857
}
1846
1858
1847
- request struct StartPresetsSchedulesEditRequestRequest {
1848
- int16u timeoutSeconds = 0;
1859
+ response struct AtomicResponse = 253 {
1860
+ status statusCode = 0;
1861
+ AtomicAttributeStatusStruct attributeStatus[] = 1;
1862
+ optional int16u timeout = 2;
1863
+ }
1864
+
1865
+ request struct AtomicRequestRequest {
1866
+ AtomicRequestTypeEnum requestType = 0;
1867
+ attrib_id attributeRequests[] = 1;
1868
+ optional int16u timeout = 2;
1849
1869
}
1850
1870
1851
- /** Command description for SetpointRaiseLower */
1871
+ /** Upon receipt, the attributes for the indicated setpoint(s) SHALL have the amount specified in the Amount field added to them. */
1852
1872
command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0;
1853
- /** Command description for SetWeeklySchedule */
1873
+ /** This command is used to update the thermostat weekly setpoint schedule from a management system. */
1854
1874
command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1;
1855
- /** Command description for GetWeeklySchedule */
1875
+ /** The Current Weekly Schedule Command is sent from the server in response to the Get Weekly Schedule Command. */
1856
1876
command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2;
1857
- /** This command is used to clear the weekly schedule. The ClearWeeklySchedule command has no payload. */
1877
+ /** This command is used to clear the weekly schedule. */
1858
1878
command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3;
1859
- /** This command is used to set the active schedule . */
1879
+ /** Upon receipt, if the Schedules attribute contains a ScheduleStruct whose ScheduleHandle field matches the value of the ScheduleHandle field, the server SHALL set the thermostat's ActiveScheduleHandle attribute to the value of the ScheduleHandle field . */
1860
1880
command SetActiveScheduleRequest(SetActiveScheduleRequestRequest): DefaultSuccess = 5;
1861
- /** This command is used to set the active preset. */
1881
+ /** ID */
1862
1882
command SetActivePresetRequest(SetActivePresetRequestRequest): DefaultSuccess = 6;
1863
- /** This command is used to start editing the presets and schedules. */
1864
- command access(invoke: manage) StartPresetsSchedulesEditRequest(StartPresetsSchedulesEditRequestRequest): DefaultSuccess = 7;
1865
- /** This command is used to cancel editing presets and schedules. */
1866
- command access(invoke: manage) CancelPresetsSchedulesEditRequest(): DefaultSuccess = 8;
1867
- /** This command is used to notify the server that all edits are done and should be committed. */
1868
- command access(invoke: manage) CommitPresetsSchedulesRequest(): DefaultSuccess = 9;
1883
+ /** Begins, Commits or Cancels an atomic write */
1884
+ command access(invoke: manage) AtomicRequest(AtomicRequestRequest): AtomicResponse = 254;
1869
1885
}
1870
1886
1871
1887
/** An interface for controlling a fan in a heating/cooling system. */
0 commit comments