Coverage Report

Created: 2025-09-02 06:46

/src/connectedhomeip/zzz_generated/app-common/clusters/Thermostat/Attributes.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 *
3
 *    Copyright (c) 2022 Project CHIP Authors
4
 *
5
 *    Licensed under the Apache License, Version 2.0 (the "License");
6
 *    you may not use this file except in compliance with the License.
7
 *    You may obtain a copy of the License at
8
 *
9
 *        http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 *    Unless required by applicable law or agreed to in writing, software
12
 *    distributed under the License is distributed on an "AS IS" BASIS,
13
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 *    See the License for the specific language governing permissions and
15
 *    limitations under the License.
16
 */
17
18
// THIS FILE IS GENERATED BY ZAP
19
// This file is generated from clusters-Attributes.h.zapt
20
21
#pragma once
22
23
#include <app/ConcreteAttributePath.h>
24
#include <app/data-model/DecodableList.h>
25
#include <app/data-model/List.h>
26
#include <app/data-model/Nullable.h>
27
#include <app/util/basic-types.h>
28
#include <lib/core/TLV.h>
29
#include <lib/support/BitMask.h>
30
31
#include <clusters/shared/Attributes.h>
32
#include <clusters/shared/Enums.h>
33
#include <clusters/shared/Structs.h>
34
35
#include <clusters/Thermostat/AttributeIds.h>
36
#include <clusters/Thermostat/ClusterId.h>
37
#include <clusters/Thermostat/Enums.h>
38
#include <clusters/Thermostat/Structs.h>
39
40
namespace chip {
41
namespace app {
42
namespace Clusters {
43
namespace Thermostat {
44
namespace Attributes {
45
46
namespace LocalTemperature {
47
struct TypeInfo
48
{
49
    using Type             = chip::app::DataModel::Nullable<int16_t>;
50
    using DecodableType    = chip::app::DataModel::Nullable<int16_t>;
51
    using DecodableArgType = const chip::app::DataModel::Nullable<int16_t> &;
52
53
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
54
0
    static constexpr AttributeId GetAttributeId() { return Attributes::LocalTemperature::Id; }
55
0
    static constexpr bool MustUseTimedWrite() { return false; }
56
};
57
} // namespace LocalTemperature
58
namespace OutdoorTemperature {
59
struct TypeInfo
60
{
61
    using Type             = chip::app::DataModel::Nullable<int16_t>;
62
    using DecodableType    = chip::app::DataModel::Nullable<int16_t>;
63
    using DecodableArgType = const chip::app::DataModel::Nullable<int16_t> &;
64
65
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
66
0
    static constexpr AttributeId GetAttributeId() { return Attributes::OutdoorTemperature::Id; }
67
0
    static constexpr bool MustUseTimedWrite() { return false; }
68
};
69
} // namespace OutdoorTemperature
70
namespace Occupancy {
71
struct TypeInfo
72
{
73
    using Type             = chip::BitMask<chip::app::Clusters::Thermostat::OccupancyBitmap>;
74
    using DecodableType    = chip::BitMask<chip::app::Clusters::Thermostat::OccupancyBitmap>;
75
    using DecodableArgType = chip::BitMask<chip::app::Clusters::Thermostat::OccupancyBitmap>;
76
77
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
78
0
    static constexpr AttributeId GetAttributeId() { return Attributes::Occupancy::Id; }
79
0
    static constexpr bool MustUseTimedWrite() { return false; }
80
};
81
} // namespace Occupancy
82
namespace AbsMinHeatSetpointLimit {
83
struct TypeInfo
84
{
85
    using Type             = int16_t;
86
    using DecodableType    = int16_t;
87
    using DecodableArgType = int16_t;
88
89
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
90
0
    static constexpr AttributeId GetAttributeId() { return Attributes::AbsMinHeatSetpointLimit::Id; }
91
0
    static constexpr bool MustUseTimedWrite() { return false; }
92
};
93
} // namespace AbsMinHeatSetpointLimit
94
namespace AbsMaxHeatSetpointLimit {
95
struct TypeInfo
96
{
97
    using Type             = int16_t;
98
    using DecodableType    = int16_t;
99
    using DecodableArgType = int16_t;
100
101
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
102
0
    static constexpr AttributeId GetAttributeId() { return Attributes::AbsMaxHeatSetpointLimit::Id; }
103
0
    static constexpr bool MustUseTimedWrite() { return false; }
104
};
105
} // namespace AbsMaxHeatSetpointLimit
106
namespace AbsMinCoolSetpointLimit {
107
struct TypeInfo
108
{
109
    using Type             = int16_t;
110
    using DecodableType    = int16_t;
111
    using DecodableArgType = int16_t;
112
113
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
114
0
    static constexpr AttributeId GetAttributeId() { return Attributes::AbsMinCoolSetpointLimit::Id; }
115
0
    static constexpr bool MustUseTimedWrite() { return false; }
116
};
117
} // namespace AbsMinCoolSetpointLimit
118
namespace AbsMaxCoolSetpointLimit {
119
struct TypeInfo
120
{
121
    using Type             = int16_t;
122
    using DecodableType    = int16_t;
123
    using DecodableArgType = int16_t;
124
125
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
126
0
    static constexpr AttributeId GetAttributeId() { return Attributes::AbsMaxCoolSetpointLimit::Id; }
127
0
    static constexpr bool MustUseTimedWrite() { return false; }
128
};
129
} // namespace AbsMaxCoolSetpointLimit
130
namespace PICoolingDemand {
131
struct TypeInfo
132
{
133
    using Type             = uint8_t;
134
    using DecodableType    = uint8_t;
135
    using DecodableArgType = uint8_t;
136
137
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
138
0
    static constexpr AttributeId GetAttributeId() { return Attributes::PICoolingDemand::Id; }
139
0
    static constexpr bool MustUseTimedWrite() { return false; }
140
};
141
} // namespace PICoolingDemand
142
namespace PIHeatingDemand {
143
struct TypeInfo
144
{
145
    using Type             = uint8_t;
146
    using DecodableType    = uint8_t;
147
    using DecodableArgType = uint8_t;
148
149
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
150
0
    static constexpr AttributeId GetAttributeId() { return Attributes::PIHeatingDemand::Id; }
151
0
    static constexpr bool MustUseTimedWrite() { return false; }
152
};
153
} // namespace PIHeatingDemand
154
namespace HVACSystemTypeConfiguration {
155
struct TypeInfo
156
{
157
    using Type             = chip::BitMask<chip::app::Clusters::Thermostat::HVACSystemTypeBitmap>;
158
    using DecodableType    = chip::BitMask<chip::app::Clusters::Thermostat::HVACSystemTypeBitmap>;
159
    using DecodableArgType = chip::BitMask<chip::app::Clusters::Thermostat::HVACSystemTypeBitmap>;
160
161
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
162
0
    static constexpr AttributeId GetAttributeId() { return Attributes::HVACSystemTypeConfiguration::Id; }
163
0
    static constexpr bool MustUseTimedWrite() { return false; }
164
};
165
} // namespace HVACSystemTypeConfiguration
166
namespace LocalTemperatureCalibration {
167
struct TypeInfo
168
{
169
    using Type             = int8_t;
170
    using DecodableType    = int8_t;
171
    using DecodableArgType = int8_t;
172
173
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
174
0
    static constexpr AttributeId GetAttributeId() { return Attributes::LocalTemperatureCalibration::Id; }
175
0
    static constexpr bool MustUseTimedWrite() { return false; }
176
};
177
} // namespace LocalTemperatureCalibration
178
namespace OccupiedCoolingSetpoint {
179
struct TypeInfo
180
{
181
    using Type             = int16_t;
182
    using DecodableType    = int16_t;
183
    using DecodableArgType = int16_t;
184
185
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
186
0
    static constexpr AttributeId GetAttributeId() { return Attributes::OccupiedCoolingSetpoint::Id; }
187
0
    static constexpr bool MustUseTimedWrite() { return false; }
188
};
189
} // namespace OccupiedCoolingSetpoint
190
namespace OccupiedHeatingSetpoint {
191
struct TypeInfo
192
{
193
    using Type             = int16_t;
194
    using DecodableType    = int16_t;
195
    using DecodableArgType = int16_t;
196
197
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
198
0
    static constexpr AttributeId GetAttributeId() { return Attributes::OccupiedHeatingSetpoint::Id; }
199
0
    static constexpr bool MustUseTimedWrite() { return false; }
200
};
201
} // namespace OccupiedHeatingSetpoint
202
namespace UnoccupiedCoolingSetpoint {
203
struct TypeInfo
204
{
205
    using Type             = int16_t;
206
    using DecodableType    = int16_t;
207
    using DecodableArgType = int16_t;
208
209
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
210
0
    static constexpr AttributeId GetAttributeId() { return Attributes::UnoccupiedCoolingSetpoint::Id; }
211
0
    static constexpr bool MustUseTimedWrite() { return false; }
212
};
213
} // namespace UnoccupiedCoolingSetpoint
214
namespace UnoccupiedHeatingSetpoint {
215
struct TypeInfo
216
{
217
    using Type             = int16_t;
218
    using DecodableType    = int16_t;
219
    using DecodableArgType = int16_t;
220
221
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
222
0
    static constexpr AttributeId GetAttributeId() { return Attributes::UnoccupiedHeatingSetpoint::Id; }
223
0
    static constexpr bool MustUseTimedWrite() { return false; }
224
};
225
} // namespace UnoccupiedHeatingSetpoint
226
namespace MinHeatSetpointLimit {
227
struct TypeInfo
228
{
229
    using Type             = int16_t;
230
    using DecodableType    = int16_t;
231
    using DecodableArgType = int16_t;
232
233
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
234
0
    static constexpr AttributeId GetAttributeId() { return Attributes::MinHeatSetpointLimit::Id; }
235
0
    static constexpr bool MustUseTimedWrite() { return false; }
236
};
237
} // namespace MinHeatSetpointLimit
238
namespace MaxHeatSetpointLimit {
239
struct TypeInfo
240
{
241
    using Type             = int16_t;
242
    using DecodableType    = int16_t;
243
    using DecodableArgType = int16_t;
244
245
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
246
0
    static constexpr AttributeId GetAttributeId() { return Attributes::MaxHeatSetpointLimit::Id; }
247
0
    static constexpr bool MustUseTimedWrite() { return false; }
248
};
249
} // namespace MaxHeatSetpointLimit
250
namespace MinCoolSetpointLimit {
251
struct TypeInfo
252
{
253
    using Type             = int16_t;
254
    using DecodableType    = int16_t;
255
    using DecodableArgType = int16_t;
256
257
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
258
0
    static constexpr AttributeId GetAttributeId() { return Attributes::MinCoolSetpointLimit::Id; }
259
0
    static constexpr bool MustUseTimedWrite() { return false; }
260
};
261
} // namespace MinCoolSetpointLimit
262
namespace MaxCoolSetpointLimit {
263
struct TypeInfo
264
{
265
    using Type             = int16_t;
266
    using DecodableType    = int16_t;
267
    using DecodableArgType = int16_t;
268
269
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
270
0
    static constexpr AttributeId GetAttributeId() { return Attributes::MaxCoolSetpointLimit::Id; }
271
0
    static constexpr bool MustUseTimedWrite() { return false; }
272
};
273
} // namespace MaxCoolSetpointLimit
274
namespace MinSetpointDeadBand {
275
struct TypeInfo
276
{
277
    using Type             = int8_t;
278
    using DecodableType    = int8_t;
279
    using DecodableArgType = int8_t;
280
281
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
282
0
    static constexpr AttributeId GetAttributeId() { return Attributes::MinSetpointDeadBand::Id; }
283
0
    static constexpr bool MustUseTimedWrite() { return false; }
284
};
285
} // namespace MinSetpointDeadBand
286
namespace RemoteSensing {
287
struct TypeInfo
288
{
289
    using Type             = chip::BitMask<chip::app::Clusters::Thermostat::RemoteSensingBitmap>;
290
    using DecodableType    = chip::BitMask<chip::app::Clusters::Thermostat::RemoteSensingBitmap>;
291
    using DecodableArgType = chip::BitMask<chip::app::Clusters::Thermostat::RemoteSensingBitmap>;
292
293
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
294
0
    static constexpr AttributeId GetAttributeId() { return Attributes::RemoteSensing::Id; }
295
0
    static constexpr bool MustUseTimedWrite() { return false; }
296
};
297
} // namespace RemoteSensing
298
namespace ControlSequenceOfOperation {
299
struct TypeInfo
300
{
301
    using Type             = chip::app::Clusters::Thermostat::ControlSequenceOfOperationEnum;
302
    using DecodableType    = chip::app::Clusters::Thermostat::ControlSequenceOfOperationEnum;
303
    using DecodableArgType = chip::app::Clusters::Thermostat::ControlSequenceOfOperationEnum;
304
305
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
306
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ControlSequenceOfOperation::Id; }
307
0
    static constexpr bool MustUseTimedWrite() { return false; }
308
};
309
} // namespace ControlSequenceOfOperation
310
namespace SystemMode {
311
struct TypeInfo
312
{
313
    using Type             = chip::app::Clusters::Thermostat::SystemModeEnum;
314
    using DecodableType    = chip::app::Clusters::Thermostat::SystemModeEnum;
315
    using DecodableArgType = chip::app::Clusters::Thermostat::SystemModeEnum;
316
317
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
318
0
    static constexpr AttributeId GetAttributeId() { return Attributes::SystemMode::Id; }
319
0
    static constexpr bool MustUseTimedWrite() { return false; }
320
};
321
} // namespace SystemMode
322
namespace ThermostatRunningMode {
323
struct TypeInfo
324
{
325
    using Type             = chip::app::Clusters::Thermostat::ThermostatRunningModeEnum;
326
    using DecodableType    = chip::app::Clusters::Thermostat::ThermostatRunningModeEnum;
327
    using DecodableArgType = chip::app::Clusters::Thermostat::ThermostatRunningModeEnum;
328
329
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
330
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ThermostatRunningMode::Id; }
331
0
    static constexpr bool MustUseTimedWrite() { return false; }
332
};
333
} // namespace ThermostatRunningMode
334
namespace StartOfWeek {
335
struct TypeInfo
336
{
337
    using Type             = chip::app::Clusters::Thermostat::StartOfWeekEnum;
338
    using DecodableType    = chip::app::Clusters::Thermostat::StartOfWeekEnum;
339
    using DecodableArgType = chip::app::Clusters::Thermostat::StartOfWeekEnum;
340
341
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
342
0
    static constexpr AttributeId GetAttributeId() { return Attributes::StartOfWeek::Id; }
343
0
    static constexpr bool MustUseTimedWrite() { return false; }
344
};
345
} // namespace StartOfWeek
346
namespace NumberOfWeeklyTransitions {
347
struct TypeInfo
348
{
349
    using Type             = uint8_t;
350
    using DecodableType    = uint8_t;
351
    using DecodableArgType = uint8_t;
352
353
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
354
0
    static constexpr AttributeId GetAttributeId() { return Attributes::NumberOfWeeklyTransitions::Id; }
355
0
    static constexpr bool MustUseTimedWrite() { return false; }
356
};
357
} // namespace NumberOfWeeklyTransitions
358
namespace NumberOfDailyTransitions {
359
struct TypeInfo
360
{
361
    using Type             = uint8_t;
362
    using DecodableType    = uint8_t;
363
    using DecodableArgType = uint8_t;
364
365
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
366
0
    static constexpr AttributeId GetAttributeId() { return Attributes::NumberOfDailyTransitions::Id; }
367
0
    static constexpr bool MustUseTimedWrite() { return false; }
368
};
369
} // namespace NumberOfDailyTransitions
370
namespace TemperatureSetpointHold {
371
struct TypeInfo
372
{
373
    using Type             = chip::app::Clusters::Thermostat::TemperatureSetpointHoldEnum;
374
    using DecodableType    = chip::app::Clusters::Thermostat::TemperatureSetpointHoldEnum;
375
    using DecodableArgType = chip::app::Clusters::Thermostat::TemperatureSetpointHoldEnum;
376
377
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
378
0
    static constexpr AttributeId GetAttributeId() { return Attributes::TemperatureSetpointHold::Id; }
379
0
    static constexpr bool MustUseTimedWrite() { return false; }
380
};
381
} // namespace TemperatureSetpointHold
382
namespace TemperatureSetpointHoldDuration {
383
struct TypeInfo
384
{
385
    using Type             = chip::app::DataModel::Nullable<uint16_t>;
386
    using DecodableType    = chip::app::DataModel::Nullable<uint16_t>;
387
    using DecodableArgType = const chip::app::DataModel::Nullable<uint16_t> &;
388
389
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
390
0
    static constexpr AttributeId GetAttributeId() { return Attributes::TemperatureSetpointHoldDuration::Id; }
391
0
    static constexpr bool MustUseTimedWrite() { return false; }
392
};
393
} // namespace TemperatureSetpointHoldDuration
394
namespace ThermostatProgrammingOperationMode {
395
struct TypeInfo
396
{
397
    using Type             = chip::BitMask<chip::app::Clusters::Thermostat::ProgrammingOperationModeBitmap>;
398
    using DecodableType    = chip::BitMask<chip::app::Clusters::Thermostat::ProgrammingOperationModeBitmap>;
399
    using DecodableArgType = chip::BitMask<chip::app::Clusters::Thermostat::ProgrammingOperationModeBitmap>;
400
401
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
402
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ThermostatProgrammingOperationMode::Id; }
403
0
    static constexpr bool MustUseTimedWrite() { return false; }
404
};
405
} // namespace ThermostatProgrammingOperationMode
406
namespace ThermostatRunningState {
407
struct TypeInfo
408
{
409
    using Type             = chip::BitMask<chip::app::Clusters::Thermostat::RelayStateBitmap>;
410
    using DecodableType    = chip::BitMask<chip::app::Clusters::Thermostat::RelayStateBitmap>;
411
    using DecodableArgType = chip::BitMask<chip::app::Clusters::Thermostat::RelayStateBitmap>;
412
413
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
414
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ThermostatRunningState::Id; }
415
0
    static constexpr bool MustUseTimedWrite() { return false; }
416
};
417
} // namespace ThermostatRunningState
418
namespace SetpointChangeSource {
419
struct TypeInfo
420
{
421
    using Type             = chip::app::Clusters::Thermostat::SetpointChangeSourceEnum;
422
    using DecodableType    = chip::app::Clusters::Thermostat::SetpointChangeSourceEnum;
423
    using DecodableArgType = chip::app::Clusters::Thermostat::SetpointChangeSourceEnum;
424
425
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
426
0
    static constexpr AttributeId GetAttributeId() { return Attributes::SetpointChangeSource::Id; }
427
0
    static constexpr bool MustUseTimedWrite() { return false; }
428
};
429
} // namespace SetpointChangeSource
430
namespace SetpointChangeAmount {
431
struct TypeInfo
432
{
433
    using Type             = chip::app::DataModel::Nullable<int16_t>;
434
    using DecodableType    = chip::app::DataModel::Nullable<int16_t>;
435
    using DecodableArgType = const chip::app::DataModel::Nullable<int16_t> &;
436
437
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
438
0
    static constexpr AttributeId GetAttributeId() { return Attributes::SetpointChangeAmount::Id; }
439
0
    static constexpr bool MustUseTimedWrite() { return false; }
440
};
441
} // namespace SetpointChangeAmount
442
namespace SetpointChangeSourceTimestamp {
443
struct TypeInfo
444
{
445
    using Type             = uint32_t;
446
    using DecodableType    = uint32_t;
447
    using DecodableArgType = uint32_t;
448
449
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
450
0
    static constexpr AttributeId GetAttributeId() { return Attributes::SetpointChangeSourceTimestamp::Id; }
451
0
    static constexpr bool MustUseTimedWrite() { return false; }
452
};
453
} // namespace SetpointChangeSourceTimestamp
454
namespace OccupiedSetback {
455
struct TypeInfo
456
{
457
    using Type             = chip::app::DataModel::Nullable<uint8_t>;
458
    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
459
    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
460
461
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
462
0
    static constexpr AttributeId GetAttributeId() { return Attributes::OccupiedSetback::Id; }
463
0
    static constexpr bool MustUseTimedWrite() { return false; }
464
};
465
} // namespace OccupiedSetback
466
namespace OccupiedSetbackMin {
467
struct TypeInfo
468
{
469
    using Type             = chip::app::DataModel::Nullable<uint8_t>;
470
    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
471
    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
472
473
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
474
0
    static constexpr AttributeId GetAttributeId() { return Attributes::OccupiedSetbackMin::Id; }
475
0
    static constexpr bool MustUseTimedWrite() { return false; }
476
};
477
} // namespace OccupiedSetbackMin
478
namespace OccupiedSetbackMax {
479
struct TypeInfo
480
{
481
    using Type             = chip::app::DataModel::Nullable<uint8_t>;
482
    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
483
    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
484
485
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
486
0
    static constexpr AttributeId GetAttributeId() { return Attributes::OccupiedSetbackMax::Id; }
487
0
    static constexpr bool MustUseTimedWrite() { return false; }
488
};
489
} // namespace OccupiedSetbackMax
490
namespace UnoccupiedSetback {
491
struct TypeInfo
492
{
493
    using Type             = chip::app::DataModel::Nullable<uint8_t>;
494
    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
495
    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
496
497
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
498
0
    static constexpr AttributeId GetAttributeId() { return Attributes::UnoccupiedSetback::Id; }
499
0
    static constexpr bool MustUseTimedWrite() { return false; }
500
};
501
} // namespace UnoccupiedSetback
502
namespace UnoccupiedSetbackMin {
503
struct TypeInfo
504
{
505
    using Type             = chip::app::DataModel::Nullable<uint8_t>;
506
    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
507
    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
508
509
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
510
0
    static constexpr AttributeId GetAttributeId() { return Attributes::UnoccupiedSetbackMin::Id; }
511
0
    static constexpr bool MustUseTimedWrite() { return false; }
512
};
513
} // namespace UnoccupiedSetbackMin
514
namespace UnoccupiedSetbackMax {
515
struct TypeInfo
516
{
517
    using Type             = chip::app::DataModel::Nullable<uint8_t>;
518
    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
519
    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
520
521
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
522
0
    static constexpr AttributeId GetAttributeId() { return Attributes::UnoccupiedSetbackMax::Id; }
523
0
    static constexpr bool MustUseTimedWrite() { return false; }
524
};
525
} // namespace UnoccupiedSetbackMax
526
namespace EmergencyHeatDelta {
527
struct TypeInfo
528
{
529
    using Type             = uint8_t;
530
    using DecodableType    = uint8_t;
531
    using DecodableArgType = uint8_t;
532
533
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
534
0
    static constexpr AttributeId GetAttributeId() { return Attributes::EmergencyHeatDelta::Id; }
535
0
    static constexpr bool MustUseTimedWrite() { return false; }
536
};
537
} // namespace EmergencyHeatDelta
538
namespace ACType {
539
struct TypeInfo
540
{
541
    using Type             = chip::app::Clusters::Thermostat::ACTypeEnum;
542
    using DecodableType    = chip::app::Clusters::Thermostat::ACTypeEnum;
543
    using DecodableArgType = chip::app::Clusters::Thermostat::ACTypeEnum;
544
545
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
546
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACType::Id; }
547
0
    static constexpr bool MustUseTimedWrite() { return false; }
548
};
549
} // namespace ACType
550
namespace ACCapacity {
551
struct TypeInfo
552
{
553
    using Type             = uint16_t;
554
    using DecodableType    = uint16_t;
555
    using DecodableArgType = uint16_t;
556
557
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
558
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACCapacity::Id; }
559
0
    static constexpr bool MustUseTimedWrite() { return false; }
560
};
561
} // namespace ACCapacity
562
namespace ACRefrigerantType {
563
struct TypeInfo
564
{
565
    using Type             = chip::app::Clusters::Thermostat::ACRefrigerantTypeEnum;
566
    using DecodableType    = chip::app::Clusters::Thermostat::ACRefrigerantTypeEnum;
567
    using DecodableArgType = chip::app::Clusters::Thermostat::ACRefrigerantTypeEnum;
568
569
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
570
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACRefrigerantType::Id; }
571
0
    static constexpr bool MustUseTimedWrite() { return false; }
572
};
573
} // namespace ACRefrigerantType
574
namespace ACCompressorType {
575
struct TypeInfo
576
{
577
    using Type             = chip::app::Clusters::Thermostat::ACCompressorTypeEnum;
578
    using DecodableType    = chip::app::Clusters::Thermostat::ACCompressorTypeEnum;
579
    using DecodableArgType = chip::app::Clusters::Thermostat::ACCompressorTypeEnum;
580
581
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
582
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACCompressorType::Id; }
583
0
    static constexpr bool MustUseTimedWrite() { return false; }
584
};
585
} // namespace ACCompressorType
586
namespace ACErrorCode {
587
struct TypeInfo
588
{
589
    using Type             = chip::BitMask<chip::app::Clusters::Thermostat::ACErrorCodeBitmap>;
590
    using DecodableType    = chip::BitMask<chip::app::Clusters::Thermostat::ACErrorCodeBitmap>;
591
    using DecodableArgType = chip::BitMask<chip::app::Clusters::Thermostat::ACErrorCodeBitmap>;
592
593
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
594
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACErrorCode::Id; }
595
0
    static constexpr bool MustUseTimedWrite() { return false; }
596
};
597
} // namespace ACErrorCode
598
namespace ACLouverPosition {
599
struct TypeInfo
600
{
601
    using Type             = chip::app::Clusters::Thermostat::ACLouverPositionEnum;
602
    using DecodableType    = chip::app::Clusters::Thermostat::ACLouverPositionEnum;
603
    using DecodableArgType = chip::app::Clusters::Thermostat::ACLouverPositionEnum;
604
605
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
606
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACLouverPosition::Id; }
607
0
    static constexpr bool MustUseTimedWrite() { return false; }
608
};
609
} // namespace ACLouverPosition
610
namespace ACCoilTemperature {
611
struct TypeInfo
612
{
613
    using Type             = chip::app::DataModel::Nullable<int16_t>;
614
    using DecodableType    = chip::app::DataModel::Nullable<int16_t>;
615
    using DecodableArgType = const chip::app::DataModel::Nullable<int16_t> &;
616
617
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
618
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACCoilTemperature::Id; }
619
0
    static constexpr bool MustUseTimedWrite() { return false; }
620
};
621
} // namespace ACCoilTemperature
622
namespace ACCapacityformat {
623
struct TypeInfo
624
{
625
    using Type             = chip::app::Clusters::Thermostat::ACCapacityFormatEnum;
626
    using DecodableType    = chip::app::Clusters::Thermostat::ACCapacityFormatEnum;
627
    using DecodableArgType = chip::app::Clusters::Thermostat::ACCapacityFormatEnum;
628
629
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
630
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ACCapacityformat::Id; }
631
0
    static constexpr bool MustUseTimedWrite() { return false; }
632
};
633
} // namespace ACCapacityformat
634
namespace PresetTypes {
635
struct TypeInfo
636
{
637
    using Type = chip::app::DataModel::List<const chip::app::Clusters::Thermostat::Structs::PresetTypeStruct::Type>;
638
    using DecodableType =
639
        chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetTypeStruct::DecodableType>;
640
    using DecodableArgType =
641
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetTypeStruct::DecodableType> &;
642
643
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
644
0
    static constexpr AttributeId GetAttributeId() { return Attributes::PresetTypes::Id; }
645
0
    static constexpr bool MustUseTimedWrite() { return false; }
646
};
647
} // namespace PresetTypes
648
namespace ScheduleTypes {
649
struct TypeInfo
650
{
651
    using Type = chip::app::DataModel::List<const chip::app::Clusters::Thermostat::Structs::ScheduleTypeStruct::Type>;
652
    using DecodableType =
653
        chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleTypeStruct::DecodableType>;
654
    using DecodableArgType =
655
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleTypeStruct::DecodableType> &;
656
657
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
658
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ScheduleTypes::Id; }
659
0
    static constexpr bool MustUseTimedWrite() { return false; }
660
};
661
} // namespace ScheduleTypes
662
namespace NumberOfPresets {
663
struct TypeInfo
664
{
665
    using Type             = uint8_t;
666
    using DecodableType    = uint8_t;
667
    using DecodableArgType = uint8_t;
668
669
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
670
0
    static constexpr AttributeId GetAttributeId() { return Attributes::NumberOfPresets::Id; }
671
0
    static constexpr bool MustUseTimedWrite() { return false; }
672
};
673
} // namespace NumberOfPresets
674
namespace NumberOfSchedules {
675
struct TypeInfo
676
{
677
    using Type             = uint8_t;
678
    using DecodableType    = uint8_t;
679
    using DecodableArgType = uint8_t;
680
681
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
682
0
    static constexpr AttributeId GetAttributeId() { return Attributes::NumberOfSchedules::Id; }
683
0
    static constexpr bool MustUseTimedWrite() { return false; }
684
};
685
} // namespace NumberOfSchedules
686
namespace NumberOfScheduleTransitions {
687
struct TypeInfo
688
{
689
    using Type             = uint8_t;
690
    using DecodableType    = uint8_t;
691
    using DecodableArgType = uint8_t;
692
693
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
694
0
    static constexpr AttributeId GetAttributeId() { return Attributes::NumberOfScheduleTransitions::Id; }
695
0
    static constexpr bool MustUseTimedWrite() { return false; }
696
};
697
} // namespace NumberOfScheduleTransitions
698
namespace NumberOfScheduleTransitionPerDay {
699
struct TypeInfo
700
{
701
    using Type             = chip::app::DataModel::Nullable<uint8_t>;
702
    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
703
    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
704
705
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
706
0
    static constexpr AttributeId GetAttributeId() { return Attributes::NumberOfScheduleTransitionPerDay::Id; }
707
0
    static constexpr bool MustUseTimedWrite() { return false; }
708
};
709
} // namespace NumberOfScheduleTransitionPerDay
710
namespace ActivePresetHandle {
711
struct TypeInfo
712
{
713
    using Type             = chip::app::DataModel::Nullable<chip::ByteSpan>;
714
    using DecodableType    = chip::app::DataModel::Nullable<chip::ByteSpan>;
715
    using DecodableArgType = const chip::app::DataModel::Nullable<chip::ByteSpan> &;
716
717
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
718
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ActivePresetHandle::Id; }
719
0
    static constexpr bool MustUseTimedWrite() { return false; }
720
0
    static constexpr size_t MaxLength() { return 16; }
721
};
722
} // namespace ActivePresetHandle
723
namespace ActiveScheduleHandle {
724
struct TypeInfo
725
{
726
    using Type             = chip::app::DataModel::Nullable<chip::ByteSpan>;
727
    using DecodableType    = chip::app::DataModel::Nullable<chip::ByteSpan>;
728
    using DecodableArgType = const chip::app::DataModel::Nullable<chip::ByteSpan> &;
729
730
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
731
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ActiveScheduleHandle::Id; }
732
0
    static constexpr bool MustUseTimedWrite() { return false; }
733
0
    static constexpr size_t MaxLength() { return 16; }
734
};
735
} // namespace ActiveScheduleHandle
736
namespace Presets {
737
struct TypeInfo
738
{
739
    using Type = chip::app::DataModel::List<const chip::app::Clusters::Thermostat::Structs::PresetStruct::Type>;
740
    using DecodableType =
741
        chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetStruct::DecodableType>;
742
    using DecodableArgType =
743
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetStruct::DecodableType> &;
744
745
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
746
0
    static constexpr AttributeId GetAttributeId() { return Attributes::Presets::Id; }
747
0
    static constexpr bool MustUseTimedWrite() { return false; }
748
};
749
} // namespace Presets
750
namespace Schedules {
751
struct TypeInfo
752
{
753
    using Type = chip::app::DataModel::List<const chip::app::Clusters::Thermostat::Structs::ScheduleStruct::Type>;
754
    using DecodableType =
755
        chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleStruct::DecodableType>;
756
    using DecodableArgType =
757
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleStruct::DecodableType> &;
758
759
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
760
0
    static constexpr AttributeId GetAttributeId() { return Attributes::Schedules::Id; }
761
0
    static constexpr bool MustUseTimedWrite() { return false; }
762
};
763
} // namespace Schedules
764
namespace SetpointHoldExpiryTimestamp {
765
struct TypeInfo
766
{
767
    using Type             = chip::app::DataModel::Nullable<uint32_t>;
768
    using DecodableType    = chip::app::DataModel::Nullable<uint32_t>;
769
    using DecodableArgType = const chip::app::DataModel::Nullable<uint32_t> &;
770
771
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
772
0
    static constexpr AttributeId GetAttributeId() { return Attributes::SetpointHoldExpiryTimestamp::Id; }
773
0
    static constexpr bool MustUseTimedWrite() { return false; }
774
};
775
} // namespace SetpointHoldExpiryTimestamp
776
namespace MaxThermostatSuggestions {
777
struct TypeInfo
778
{
779
    using Type             = uint8_t;
780
    using DecodableType    = uint8_t;
781
    using DecodableArgType = uint8_t;
782
783
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
784
0
    static constexpr AttributeId GetAttributeId() { return Attributes::MaxThermostatSuggestions::Id; }
785
0
    static constexpr bool MustUseTimedWrite() { return false; }
786
};
787
} // namespace MaxThermostatSuggestions
788
namespace ThermostatSuggestions {
789
struct TypeInfo
790
{
791
    using Type = chip::app::DataModel::List<const chip::app::Clusters::Thermostat::Structs::ThermostatSuggestionStruct::Type>;
792
    using DecodableType =
793
        chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ThermostatSuggestionStruct::DecodableType>;
794
    using DecodableArgType = const chip::app::DataModel::DecodableList<
795
        chip::app::Clusters::Thermostat::Structs::ThermostatSuggestionStruct::DecodableType> &;
796
797
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
798
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ThermostatSuggestions::Id; }
799
0
    static constexpr bool MustUseTimedWrite() { return false; }
800
};
801
} // namespace ThermostatSuggestions
802
namespace CurrentThermostatSuggestion {
803
struct TypeInfo
804
{
805
    using Type = chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::Structs::ThermostatSuggestionStruct::Type>;
806
    using DecodableType =
807
        chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::Structs::ThermostatSuggestionStruct::DecodableType>;
808
    using DecodableArgType =
809
        const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::Structs::ThermostatSuggestionStruct::DecodableType> &;
810
811
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
812
0
    static constexpr AttributeId GetAttributeId() { return Attributes::CurrentThermostatSuggestion::Id; }
813
0
    static constexpr bool MustUseTimedWrite() { return false; }
814
};
815
} // namespace CurrentThermostatSuggestion
816
namespace ThermostatSuggestionNotFollowingReason {
817
struct TypeInfo
818
{
819
    using Type = chip::app::DataModel::Nullable<
820
        chip::BitMask<chip::app::Clusters::Thermostat::ThermostatSuggestionNotFollowingReasonBitmap>>;
821
    using DecodableType = chip::app::DataModel::Nullable<
822
        chip::BitMask<chip::app::Clusters::Thermostat::ThermostatSuggestionNotFollowingReasonBitmap>>;
823
    using DecodableArgType = const chip::app::DataModel::Nullable<
824
        chip::BitMask<chip::app::Clusters::Thermostat::ThermostatSuggestionNotFollowingReasonBitmap>> &;
825
826
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
827
0
    static constexpr AttributeId GetAttributeId() { return Attributes::ThermostatSuggestionNotFollowingReason::Id; }
828
0
    static constexpr bool MustUseTimedWrite() { return false; }
829
};
830
} // namespace ThermostatSuggestionNotFollowingReason
831
namespace GeneratedCommandList {
832
struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
833
{
834
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
835
};
836
} // namespace GeneratedCommandList
837
namespace AcceptedCommandList {
838
struct TypeInfo : public Clusters::Globals::Attributes::AcceptedCommandList::TypeInfo
839
{
840
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
841
};
842
} // namespace AcceptedCommandList
843
namespace AttributeList {
844
struct TypeInfo : public Clusters::Globals::Attributes::AttributeList::TypeInfo
845
{
846
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
847
};
848
} // namespace AttributeList
849
namespace FeatureMap {
850
struct TypeInfo : public Clusters::Globals::Attributes::FeatureMap::TypeInfo
851
{
852
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
853
};
854
} // namespace FeatureMap
855
namespace ClusterRevision {
856
struct TypeInfo : public Clusters::Globals::Attributes::ClusterRevision::TypeInfo
857
{
858
0
    static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
859
};
860
} // namespace ClusterRevision
861
862
struct TypeInfo
863
{
864
    struct DecodableType
865
    {
866
0
        static constexpr ClusterId GetClusterId() { return Clusters::Thermostat::Id; }
867
868
        CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
869
870
        Attributes::LocalTemperature::TypeInfo::DecodableType localTemperature;
871
        Attributes::OutdoorTemperature::TypeInfo::DecodableType outdoorTemperature;
872
        Attributes::Occupancy::TypeInfo::DecodableType occupancy =
873
            static_cast<chip::BitMask<chip::app::Clusters::Thermostat::OccupancyBitmap>>(0);
874
        Attributes::AbsMinHeatSetpointLimit::TypeInfo::DecodableType absMinHeatSetpointLimit = static_cast<int16_t>(0);
875
        Attributes::AbsMaxHeatSetpointLimit::TypeInfo::DecodableType absMaxHeatSetpointLimit = static_cast<int16_t>(0);
876
        Attributes::AbsMinCoolSetpointLimit::TypeInfo::DecodableType absMinCoolSetpointLimit = static_cast<int16_t>(0);
877
        Attributes::AbsMaxCoolSetpointLimit::TypeInfo::DecodableType absMaxCoolSetpointLimit = static_cast<int16_t>(0);
878
        Attributes::PICoolingDemand::TypeInfo::DecodableType PICoolingDemand                 = static_cast<uint8_t>(0);
879
        Attributes::PIHeatingDemand::TypeInfo::DecodableType PIHeatingDemand                 = static_cast<uint8_t>(0);
880
        Attributes::HVACSystemTypeConfiguration::TypeInfo::DecodableType HVACSystemTypeConfiguration =
881
            static_cast<chip::BitMask<chip::app::Clusters::Thermostat::HVACSystemTypeBitmap>>(0);
882
        Attributes::LocalTemperatureCalibration::TypeInfo::DecodableType localTemperatureCalibration = static_cast<int8_t>(0);
883
        Attributes::OccupiedCoolingSetpoint::TypeInfo::DecodableType occupiedCoolingSetpoint         = static_cast<int16_t>(0);
884
        Attributes::OccupiedHeatingSetpoint::TypeInfo::DecodableType occupiedHeatingSetpoint         = static_cast<int16_t>(0);
885
        Attributes::UnoccupiedCoolingSetpoint::TypeInfo::DecodableType unoccupiedCoolingSetpoint     = static_cast<int16_t>(0);
886
        Attributes::UnoccupiedHeatingSetpoint::TypeInfo::DecodableType unoccupiedHeatingSetpoint     = static_cast<int16_t>(0);
887
        Attributes::MinHeatSetpointLimit::TypeInfo::DecodableType minHeatSetpointLimit               = static_cast<int16_t>(0);
888
        Attributes::MaxHeatSetpointLimit::TypeInfo::DecodableType maxHeatSetpointLimit               = static_cast<int16_t>(0);
889
        Attributes::MinCoolSetpointLimit::TypeInfo::DecodableType minCoolSetpointLimit               = static_cast<int16_t>(0);
890
        Attributes::MaxCoolSetpointLimit::TypeInfo::DecodableType maxCoolSetpointLimit               = static_cast<int16_t>(0);
891
        Attributes::MinSetpointDeadBand::TypeInfo::DecodableType minSetpointDeadBand                 = static_cast<int8_t>(0);
892
        Attributes::RemoteSensing::TypeInfo::DecodableType remoteSensing =
893
            static_cast<chip::BitMask<chip::app::Clusters::Thermostat::RemoteSensingBitmap>>(0);
894
        Attributes::ControlSequenceOfOperation::TypeInfo::DecodableType controlSequenceOfOperation =
895
            static_cast<chip::app::Clusters::Thermostat::ControlSequenceOfOperationEnum>(0);
896
        Attributes::SystemMode::TypeInfo::DecodableType systemMode =
897
            static_cast<chip::app::Clusters::Thermostat::SystemModeEnum>(0);
898
        Attributes::ThermostatRunningMode::TypeInfo::DecodableType thermostatRunningMode =
899
            static_cast<chip::app::Clusters::Thermostat::ThermostatRunningModeEnum>(0);
900
        Attributes::StartOfWeek::TypeInfo::DecodableType startOfWeek =
901
            static_cast<chip::app::Clusters::Thermostat::StartOfWeekEnum>(0);
902
        Attributes::NumberOfWeeklyTransitions::TypeInfo::DecodableType numberOfWeeklyTransitions = static_cast<uint8_t>(0);
903
        Attributes::NumberOfDailyTransitions::TypeInfo::DecodableType numberOfDailyTransitions   = static_cast<uint8_t>(0);
904
        Attributes::TemperatureSetpointHold::TypeInfo::DecodableType temperatureSetpointHold =
905
            static_cast<chip::app::Clusters::Thermostat::TemperatureSetpointHoldEnum>(0);
906
        Attributes::TemperatureSetpointHoldDuration::TypeInfo::DecodableType temperatureSetpointHoldDuration;
907
        Attributes::ThermostatProgrammingOperationMode::TypeInfo::DecodableType thermostatProgrammingOperationMode =
908
            static_cast<chip::BitMask<chip::app::Clusters::Thermostat::ProgrammingOperationModeBitmap>>(0);
909
        Attributes::ThermostatRunningState::TypeInfo::DecodableType thermostatRunningState =
910
            static_cast<chip::BitMask<chip::app::Clusters::Thermostat::RelayStateBitmap>>(0);
911
        Attributes::SetpointChangeSource::TypeInfo::DecodableType setpointChangeSource =
912
            static_cast<chip::app::Clusters::Thermostat::SetpointChangeSourceEnum>(0);
913
        Attributes::SetpointChangeAmount::TypeInfo::DecodableType setpointChangeAmount;
914
        Attributes::SetpointChangeSourceTimestamp::TypeInfo::DecodableType setpointChangeSourceTimestamp = static_cast<uint32_t>(0);
915
        Attributes::OccupiedSetback::TypeInfo::DecodableType occupiedSetback;
916
        Attributes::OccupiedSetbackMin::TypeInfo::DecodableType occupiedSetbackMin;
917
        Attributes::OccupiedSetbackMax::TypeInfo::DecodableType occupiedSetbackMax;
918
        Attributes::UnoccupiedSetback::TypeInfo::DecodableType unoccupiedSetback;
919
        Attributes::UnoccupiedSetbackMin::TypeInfo::DecodableType unoccupiedSetbackMin;
920
        Attributes::UnoccupiedSetbackMax::TypeInfo::DecodableType unoccupiedSetbackMax;
921
        Attributes::EmergencyHeatDelta::TypeInfo::DecodableType emergencyHeatDelta = static_cast<uint8_t>(0);
922
        Attributes::ACType::TypeInfo::DecodableType ACType         = static_cast<chip::app::Clusters::Thermostat::ACTypeEnum>(0);
923
        Attributes::ACCapacity::TypeInfo::DecodableType ACCapacity = static_cast<uint16_t>(0);
924
        Attributes::ACRefrigerantType::TypeInfo::DecodableType ACRefrigerantType =
925
            static_cast<chip::app::Clusters::Thermostat::ACRefrigerantTypeEnum>(0);
926
        Attributes::ACCompressorType::TypeInfo::DecodableType ACCompressorType =
927
            static_cast<chip::app::Clusters::Thermostat::ACCompressorTypeEnum>(0);
928
        Attributes::ACErrorCode::TypeInfo::DecodableType ACErrorCode =
929
            static_cast<chip::BitMask<chip::app::Clusters::Thermostat::ACErrorCodeBitmap>>(0);
930
        Attributes::ACLouverPosition::TypeInfo::DecodableType ACLouverPosition =
931
            static_cast<chip::app::Clusters::Thermostat::ACLouverPositionEnum>(0);
932
        Attributes::ACCoilTemperature::TypeInfo::DecodableType ACCoilTemperature;
933
        Attributes::ACCapacityformat::TypeInfo::DecodableType ACCapacityformat =
934
            static_cast<chip::app::Clusters::Thermostat::ACCapacityFormatEnum>(0);
935
        Attributes::PresetTypes::TypeInfo::DecodableType presetTypes;
936
        Attributes::ScheduleTypes::TypeInfo::DecodableType scheduleTypes;
937
        Attributes::NumberOfPresets::TypeInfo::DecodableType numberOfPresets                         = static_cast<uint8_t>(0);
938
        Attributes::NumberOfSchedules::TypeInfo::DecodableType numberOfSchedules                     = static_cast<uint8_t>(0);
939
        Attributes::NumberOfScheduleTransitions::TypeInfo::DecodableType numberOfScheduleTransitions = static_cast<uint8_t>(0);
940
        Attributes::NumberOfScheduleTransitionPerDay::TypeInfo::DecodableType numberOfScheduleTransitionPerDay;
941
        Attributes::ActivePresetHandle::TypeInfo::DecodableType activePresetHandle;
942
        Attributes::ActiveScheduleHandle::TypeInfo::DecodableType activeScheduleHandle;
943
        Attributes::Presets::TypeInfo::DecodableType presets;
944
        Attributes::Schedules::TypeInfo::DecodableType schedules;
945
        Attributes::SetpointHoldExpiryTimestamp::TypeInfo::DecodableType setpointHoldExpiryTimestamp;
946
        Attributes::MaxThermostatSuggestions::TypeInfo::DecodableType maxThermostatSuggestions = static_cast<uint8_t>(0);
947
        Attributes::ThermostatSuggestions::TypeInfo::DecodableType thermostatSuggestions;
948
        Attributes::CurrentThermostatSuggestion::TypeInfo::DecodableType currentThermostatSuggestion;
949
        Attributes::ThermostatSuggestionNotFollowingReason::TypeInfo::DecodableType thermostatSuggestionNotFollowingReason;
950
        Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
951
        Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
952
        Attributes::AttributeList::TypeInfo::DecodableType attributeList;
953
        Attributes::FeatureMap::TypeInfo::DecodableType featureMap           = static_cast<uint32_t>(0);
954
        Attributes::ClusterRevision::TypeInfo::DecodableType clusterRevision = static_cast<uint16_t>(0);
955
    };
956
};
957
} // namespace Attributes
958
} // namespace Thermostat
959
} // namespace Clusters
960
} // namespace app
961
} // namespace chip