@@ -3961,13 +3961,41 @@ cluster PumpConfigurationAndControl = 512 {
3961
3961
cluster Thermostat = 513 {
3962
3962
revision 6;
3963
3963
3964
- enum SetpointAdjustMode : enum8 {
3965
- kHeat = 0;
3966
- kCool = 1;
3967
- kBoth = 2;
3964
+ enum ACCapacityFormatEnum : enum8 {
3965
+ kBTUh = 0;
3966
+ }
3967
+
3968
+ enum ACCompressorTypeEnum : enum8 {
3969
+ kUnknown = 0;
3970
+ kT1 = 1;
3971
+ kT2 = 2;
3972
+ kT3 = 3;
3973
+ }
3974
+
3975
+ enum ACLouverPositionEnum : enum8 {
3976
+ kClosed = 1;
3977
+ kOpen = 2;
3978
+ kQuarter = 3;
3979
+ kHalf = 4;
3980
+ kThreeQuarters = 5;
3968
3981
}
3969
3982
3970
- enum ThermostatControlSequence : enum8 {
3983
+ enum ACRefrigerantTypeEnum : enum8 {
3984
+ kUnknown = 0;
3985
+ kR22 = 1;
3986
+ kR410a = 2;
3987
+ kR407c = 3;
3988
+ }
3989
+
3990
+ enum ACTypeEnum : enum8 {
3991
+ kUnknown = 0;
3992
+ kCoolingFixed = 1;
3993
+ kHeatPumpFixed = 2;
3994
+ kCoolingInverter = 3;
3995
+ kHeatPumpInverter = 4;
3996
+ }
3997
+
3998
+ enum ControlSequenceOfOperationEnum : enum8 {
3971
3999
kCoolingOnly = 0;
3972
4000
kCoolingWithReheat = 1;
3973
4001
kHeatingOnly = 2;
@@ -3976,13 +4004,29 @@ cluster Thermostat = 513 {
3976
4004
kCoolingAndHeatingWithReheat = 5;
3977
4005
}
3978
4006
3979
- enum ThermostatRunningMode : enum8 {
3980
- kOff = 0;
3981
- kCool = 3;
3982
- kHeat = 4;
4007
+ enum SetpointChangeSourceEnum : enum8 {
4008
+ kManual = 0;
4009
+ kSchedule = 1;
4010
+ kExternal = 2;
4011
+ }
4012
+
4013
+ enum SetpointRaiseLowerModeEnum : enum8 {
4014
+ kHeat = 0;
4015
+ kCool = 1;
4016
+ kBoth = 2;
3983
4017
}
3984
4018
3985
- enum ThermostatSystemMode : enum8 {
4019
+ enum StartOfWeekEnum : enum8 {
4020
+ kSunday = 0;
4021
+ kMonday = 1;
4022
+ kTuesday = 2;
4023
+ kWednesday = 3;
4024
+ kThursday = 4;
4025
+ kFriday = 5;
4026
+ kSaturday = 6;
4027
+ }
4028
+
4029
+ enum SystemModeEnum : enum8 {
3986
4030
kOff = 0;
3987
4031
kAuto = 1;
3988
4032
kCool = 3;
@@ -3994,15 +4038,23 @@ cluster Thermostat = 513 {
3994
4038
kSleep = 9;
3995
4039
}
3996
4040
3997
- bitmap DayOfWeek : bitmap8 {
3998
- kSunday = 0x1;
3999
- kMonday = 0x2;
4000
- kTuesday = 0x4;
4001
- kWednesday = 0x8;
4002
- kThursday = 0x10;
4003
- kFriday = 0x20;
4004
- kSaturday = 0x40;
4005
- kAway = 0x80;
4041
+ enum TemperatureSetpointHoldEnum : enum8 {
4042
+ kSetpointHoldOff = 0;
4043
+ kSetpointHoldOn = 1;
4044
+ }
4045
+
4046
+ enum ThermostatRunningModeEnum : enum8 {
4047
+ kOff = 0;
4048
+ kCool = 3;
4049
+ kHeat = 4;
4050
+ }
4051
+
4052
+ bitmap ACErrorCodeBitmap : bitmap32 {
4053
+ kCompressorFail = 0x1;
4054
+ kRoomSensorFail = 0x2;
4055
+ kOutdoorSensorFail = 0x4;
4056
+ kCoilSensorFail = 0x8;
4057
+ kFanFail = 0x10;
4006
4058
}
4007
4059
4008
4060
bitmap Feature : bitmap32 {
@@ -4015,24 +4067,64 @@ cluster Thermostat = 513 {
4015
4067
kLocalTemperatureNotExposed = 0x40;
4016
4068
}
4017
4069
4018
- bitmap ModeForSequence : bitmap8 {
4070
+ bitmap HVACSystemTypeBitmap : bitmap8 {
4071
+ kCoolingStage = 0x3;
4072
+ kHeatingStage = 0xC;
4073
+ kHeatingIsHeatPump = 0x10;
4074
+ kHeatingUsesFuel = 0x20;
4075
+ }
4076
+
4077
+ bitmap ProgrammingOperationModeBitmap : bitmap8 {
4078
+ kScheduleActive = 0x1;
4079
+ kAutoRecovery = 0x2;
4080
+ kEconomy = 0x4;
4081
+ }
4082
+
4083
+ bitmap RelayStateBitmap : bitmap16 {
4084
+ kHeat = 0x1;
4085
+ kCool = 0x2;
4086
+ kFan = 0x4;
4087
+ kHeatStage2 = 0x8;
4088
+ kCoolStage2 = 0x10;
4089
+ kFanStage2 = 0x20;
4090
+ kFanStage3 = 0x40;
4091
+ }
4092
+
4093
+ bitmap RemoteSensingBitmap : bitmap8 {
4094
+ kLocalTemperature = 0x1;
4095
+ kOutdoorTemperature = 0x2;
4096
+ kOccupancy = 0x4;
4097
+ }
4098
+
4099
+ bitmap ScheduleDayOfWeekBitmap : bitmap8 {
4100
+ kSunday = 0x1;
4101
+ kMonday = 0x2;
4102
+ kTuesday = 0x4;
4103
+ kWednesday = 0x8;
4104
+ kThursday = 0x10;
4105
+ kFriday = 0x20;
4106
+ kSaturday = 0x40;
4107
+ kAway = 0x80;
4108
+ }
4109
+
4110
+ bitmap ScheduleModeBitmap : bitmap8 {
4019
4111
kHeatSetpointPresent = 0x1;
4020
4112
kCoolSetpointPresent = 0x2;
4021
4113
}
4022
4114
4023
- struct ThermostatScheduleTransition {
4115
+ struct WeeklyScheduleTransitionStruct {
4024
4116
int16u transitionTime = 0;
4025
- nullable int16s heatSetpoint = 1;
4026
- nullable int16s coolSetpoint = 2;
4117
+ nullable temperature heatSetpoint = 1;
4118
+ nullable temperature coolSetpoint = 2;
4027
4119
}
4028
4120
4029
- readonly attribute nullable int16s localTemperature = 0;
4030
- readonly attribute optional nullable int16s outdoorTemperature = 1;
4121
+ readonly attribute nullable temperature localTemperature = 0;
4122
+ readonly attribute optional nullable temperature outdoorTemperature = 1;
4031
4123
readonly attribute optional bitmap8 occupancy = 2;
4032
- readonly attribute optional int16s absMinHeatSetpointLimit = 3;
4033
- readonly attribute optional int16s absMaxHeatSetpointLimit = 4;
4034
- readonly attribute optional int16s absMinCoolSetpointLimit = 5;
4035
- readonly attribute optional int16s absMaxCoolSetpointLimit = 6;
4124
+ readonly attribute optional temperature absMinHeatSetpointLimit = 3;
4125
+ readonly attribute optional temperature absMaxHeatSetpointLimit = 4;
4126
+ readonly attribute optional temperature absMinCoolSetpointLimit = 5;
4127
+ readonly attribute optional temperature absMaxCoolSetpointLimit = 6;
4036
4128
readonly attribute optional int8u PICoolingDemand = 7;
4037
4129
readonly attribute optional int8u PIHeatingDemand = 8;
4038
4130
attribute access(write: manage) optional bitmap8 HVACSystemTypeConfiguration = 9;
@@ -4046,18 +4138,18 @@ cluster Thermostat = 513 {
4046
4138
attribute access(write: manage) optional int16s minCoolSetpointLimit = 23;
4047
4139
attribute access(write: manage) optional int16s maxCoolSetpointLimit = 24;
4048
4140
attribute access(write: manage) optional int8s minSetpointDeadBand = 25;
4049
- attribute access(write: manage) optional bitmap8 remoteSensing = 26;
4050
- attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27;
4051
- attribute access(write: manage) enum8 systemMode = 28;
4052
- readonly attribute optional enum8 thermostatRunningMode = 30;
4053
- readonly attribute optional enum8 startOfWeek = 32;
4141
+ attribute access(write: manage) optional RemoteSensingBitmap remoteSensing = 26;
4142
+ attribute access(write: manage) ControlSequenceOfOperationEnum controlSequenceOfOperation = 27;
4143
+ attribute access(write: manage) SystemModeEnum systemMode = 28;
4144
+ readonly attribute optional ThermostatRunningModeEnum thermostatRunningMode = 30;
4145
+ readonly attribute optional StartOfWeekEnum startOfWeek = 32;
4054
4146
readonly attribute optional int8u numberOfWeeklyTransitions = 33;
4055
4147
readonly attribute optional int8u numberOfDailyTransitions = 34;
4056
- attribute access(write: manage) optional enum8 temperatureSetpointHold = 35;
4148
+ attribute access(write: manage) optional TemperatureSetpointHoldEnum temperatureSetpointHold = 35;
4057
4149
attribute access(write: manage) optional nullable int16u temperatureSetpointHoldDuration = 36;
4058
- attribute access(write: manage) optional bitmap8 thermostatProgrammingOperationMode = 37;
4059
- readonly attribute optional bitmap16 thermostatRunningState = 41;
4060
- readonly attribute optional enum8 setpointChangeSource = 48;
4150
+ attribute access(write: manage) optional ProgrammingOperationModeBitmap thermostatProgrammingOperationMode = 37;
4151
+ readonly attribute optional RelayStateBitmap thermostatRunningState = 41;
4152
+ readonly attribute optional SetpointChangeSourceEnum setpointChangeSource = 48;
4061
4153
readonly attribute optional nullable int16s setpointChangeAmount = 49;
4062
4154
readonly attribute optional epoch_s setpointChangeSourceTimestamp = 50;
4063
4155
attribute access(write: manage) optional nullable int8u occupiedSetback = 52;
@@ -4067,14 +4159,14 @@ cluster Thermostat = 513 {
4067
4159
readonly attribute optional nullable int8u unoccupiedSetbackMin = 56;
4068
4160
readonly attribute optional nullable int8u unoccupiedSetbackMax = 57;
4069
4161
attribute access(write: manage) optional int8u emergencyHeatDelta = 58;
4070
- attribute access(write: manage) optional enum8 ACType = 64;
4162
+ attribute access(write: manage) optional ACTypeEnum ACType = 64;
4071
4163
attribute access(write: manage) optional int16u ACCapacity = 65;
4072
- attribute access(write: manage) optional enum8 ACRefrigerantType = 66;
4073
- attribute access(write: manage) optional enum8 ACCompressorType = 67;
4074
- attribute access(write: manage) optional bitmap32 ACErrorCode = 68;
4075
- attribute access(write: manage) optional enum8 ACLouverPosition = 69;
4076
- readonly attribute optional nullable int16s ACCoilTemperature = 70;
4077
- attribute access(write: manage) optional enum8 ACCapacityformat = 71;
4164
+ attribute access(write: manage) optional ACRefrigerantTypeEnum ACRefrigerantType = 66;
4165
+ attribute access(write: manage) optional ACCompressorTypeEnum ACCompressorType = 67;
4166
+ attribute access(write: manage) optional ACErrorCodeBitmap ACErrorCode = 68;
4167
+ attribute access(write: manage) optional ACLouverPositionEnum ACLouverPosition = 69;
4168
+ readonly attribute optional nullable temperature ACCoilTemperature = 70;
4169
+ attribute access(write: manage) optional ACCapacityFormatEnum ACCapacityformat = 71;
4078
4170
readonly attribute command_id generatedCommandList[] = 65528;
4079
4171
readonly attribute command_id acceptedCommandList[] = 65529;
4080
4172
readonly attribute event_id eventList[] = 65530;
@@ -4083,27 +4175,27 @@ cluster Thermostat = 513 {
4083
4175
readonly attribute int16u clusterRevision = 65533;
4084
4176
4085
4177
request struct SetpointRaiseLowerRequest {
4086
- SetpointAdjustMode mode = 0;
4178
+ SetpointRaiseLowerModeEnum mode = 0;
4087
4179
int8s amount = 1;
4088
4180
}
4089
4181
4090
4182
response struct GetWeeklyScheduleResponse = 0 {
4091
4183
int8u numberOfTransitionsForSequence = 0;
4092
- DayOfWeek dayOfWeekForSequence = 1;
4093
- ModeForSequence modeForSequence = 2;
4094
- ThermostatScheduleTransition transitions[] = 3;
4184
+ ScheduleDayOfWeekBitmap dayOfWeekForSequence = 1;
4185
+ ScheduleModeBitmap modeForSequence = 2;
4186
+ WeeklyScheduleTransitionStruct transitions[] = 3;
4095
4187
}
4096
4188
4097
4189
request struct SetWeeklyScheduleRequest {
4098
4190
int8u numberOfTransitionsForSequence = 0;
4099
- DayOfWeek dayOfWeekForSequence = 1;
4100
- ModeForSequence modeForSequence = 2;
4101
- ThermostatScheduleTransition transitions[] = 3;
4191
+ ScheduleDayOfWeekBitmap dayOfWeekForSequence = 1;
4192
+ ScheduleModeBitmap modeForSequence = 2;
4193
+ WeeklyScheduleTransitionStruct transitions[] = 3;
4102
4194
}
4103
4195
4104
4196
request struct GetWeeklyScheduleRequest {
4105
- DayOfWeek daysToReturn = 0;
4106
- ModeForSequence modeToReturn = 1;
4197
+ ScheduleDayOfWeekBitmap daysToReturn = 0;
4198
+ ScheduleModeBitmap modeToReturn = 1;
4107
4199
}
4108
4200
4109
4201
/** Command description for SetpointRaiseLower */
@@ -7049,6 +7141,7 @@ endpoint 1 {
7049
7141
ram attribute systemMode default = 0x01;
7050
7142
callback attribute generatedCommandList;
7051
7143
callback attribute acceptedCommandList;
7144
+ callback attribute eventList;
7052
7145
callback attribute attributeList;
7053
7146
ram attribute featureMap default = 0x0023;
7054
7147
ram attribute clusterRevision default = 6;
0 commit comments