forked from project-chip/connectedhomeip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathall-clusters-app.matter
8152 lines (7191 loc) · 280 KB
/
all-clusters-app.matter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// This IDL was generated automatically by ZAP.
// It is for view/code review purposes only.
/** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */
cluster Identify = 3 {
revision 4;
enum EffectIdentifierEnum : enum8 {
kBlink = 0;
kBreathe = 1;
kOkay = 2;
kChannelChange = 11;
kFinishEffect = 254;
kStopEffect = 255;
}
enum EffectVariantEnum : enum8 {
kDefault = 0;
}
enum IdentifyTypeEnum : enum8 {
kNone = 0;
kLightOutput = 1;
kVisibleIndicator = 2;
kAudibleBeep = 3;
kDisplay = 4;
kActuator = 5;
}
attribute int16u identifyTime = 0;
readonly attribute IdentifyTypeEnum identifyType = 1;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct IdentifyRequest {
int16u identifyTime = 0;
}
request struct TriggerEffectRequest {
EffectIdentifierEnum effectIdentifier = 0;
EffectVariantEnum effectVariant = 1;
}
/** Command description for Identify */
command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0;
/** Command description for TriggerEffect */
command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64;
}
/** Attributes and commands for group configuration and manipulation. */
cluster Groups = 4 {
revision 4;
bitmap Feature : bitmap32 {
kGroupNames = 0x1;
}
bitmap NameSupportBitmap : bitmap8 {
kGroupNames = 0x80;
}
readonly attribute NameSupportBitmap nameSupport = 0;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct AddGroupRequest {
group_id groupID = 0;
char_string<16> groupName = 1;
}
response struct AddGroupResponse = 0 {
enum8 status = 0;
group_id groupID = 1;
}
request struct ViewGroupRequest {
group_id groupID = 0;
}
response struct ViewGroupResponse = 1 {
enum8 status = 0;
group_id groupID = 1;
char_string<16> groupName = 2;
}
request struct GetGroupMembershipRequest {
group_id groupList[] = 0;
}
response struct GetGroupMembershipResponse = 2 {
nullable int8u capacity = 0;
group_id groupList[] = 1;
}
request struct RemoveGroupRequest {
group_id groupID = 0;
}
response struct RemoveGroupResponse = 3 {
enum8 status = 0;
group_id groupID = 1;
}
request struct AddGroupIfIdentifyingRequest {
group_id groupID = 0;
char_string<16> groupName = 1;
}
/** Command description for AddGroup */
fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0;
/** Command description for ViewGroup */
fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
/** Command description for GetGroupMembership */
fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2;
/** Command description for RemoveGroup */
fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3;
/** Command description for RemoveAllGroups */
fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4;
/** Command description for AddGroupIfIdentifying */
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
/** Attributes and commands for scene configuration and manipulation. */
provisional cluster Scenes = 5 {
revision 5;
bitmap CopyModeBitmap : bitmap8 {
kCopyAllScenes = 0x1;
}
bitmap Feature : bitmap32 {
kSceneNames = 0x1;
kExplicit = 0x2;
kTableSize = 0x4;
kFabricScenes = 0x8;
}
bitmap NameSupportBitmap : bitmap8 {
kSceneNames = 0x80;
}
struct AttributeValuePair {
attrib_id attributeID = 0;
int32u attributeValue = 1;
}
struct ExtensionFieldSet {
cluster_id clusterID = 0;
AttributeValuePair attributeValueList[] = 1;
}
fabric_scoped struct SceneInfoStruct {
int8u sceneCount = 0;
fabric_sensitive int8u currentScene = 1;
fabric_sensitive group_id currentGroup = 2;
fabric_sensitive boolean sceneValid = 3;
int8u remainingCapacity = 4;
fabric_idx fabricIndex = 254;
}
readonly attribute optional int8u sceneCount = 0;
readonly attribute optional int8u currentScene = 1;
readonly attribute optional group_id currentGroup = 2;
readonly attribute optional boolean sceneValid = 3;
readonly attribute NameSupportBitmap nameSupport = 4;
readonly attribute optional nullable node_id lastConfiguredBy = 5;
readonly attribute int16u sceneTableSize = 6;
readonly attribute SceneInfoStruct fabricSceneInfo[] = 7;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct AddSceneRequest {
group_id groupID = 0;
int8u sceneID = 1;
int16u transitionTime = 2;
char_string sceneName = 3;
ExtensionFieldSet extensionFieldSets[] = 4;
}
response struct AddSceneResponse = 0 {
status status = 0;
group_id groupID = 1;
int8u sceneID = 2;
}
request struct ViewSceneRequest {
group_id groupID = 0;
int8u sceneID = 1;
}
response struct ViewSceneResponse = 1 {
status status = 0;
group_id groupID = 1;
int8u sceneID = 2;
optional int16u transitionTime = 3;
optional char_string sceneName = 4;
optional ExtensionFieldSet extensionFieldSets[] = 5;
}
request struct RemoveSceneRequest {
group_id groupID = 0;
int8u sceneID = 1;
}
response struct RemoveSceneResponse = 2 {
status status = 0;
group_id groupID = 1;
int8u sceneID = 2;
}
request struct RemoveAllScenesRequest {
group_id groupID = 0;
}
response struct RemoveAllScenesResponse = 3 {
status status = 0;
group_id groupID = 1;
}
request struct StoreSceneRequest {
group_id groupID = 0;
int8u sceneID = 1;
}
response struct StoreSceneResponse = 4 {
status status = 0;
group_id groupID = 1;
int8u sceneID = 2;
}
request struct RecallSceneRequest {
group_id groupID = 0;
int8u sceneID = 1;
optional nullable int16u transitionTime = 2;
}
request struct GetSceneMembershipRequest {
group_id groupID = 0;
}
response struct GetSceneMembershipResponse = 6 {
status status = 0;
nullable int8u capacity = 1;
group_id groupID = 2;
optional int8u sceneList[] = 3;
}
request struct EnhancedAddSceneRequest {
group_id groupID = 0;
int8u sceneID = 1;
int16u transitionTime = 2;
char_string sceneName = 3;
ExtensionFieldSet extensionFieldSets[] = 4;
}
response struct EnhancedAddSceneResponse = 64 {
status status = 0;
group_id groupID = 1;
int8u sceneID = 2;
}
request struct EnhancedViewSceneRequest {
group_id groupID = 0;
int8u sceneID = 1;
}
response struct EnhancedViewSceneResponse = 65 {
status status = 0;
group_id groupID = 1;
int8u sceneID = 2;
optional int16u transitionTime = 3;
optional char_string sceneName = 4;
optional ExtensionFieldSet extensionFieldSets[] = 5;
}
request struct CopySceneRequest {
CopyModeBitmap mode = 0;
group_id groupIdentifierFrom = 1;
int8u sceneIdentifierFrom = 2;
group_id groupIdentifierTo = 3;
int8u sceneIdentifierTo = 4;
}
response struct CopySceneResponse = 66 {
status status = 0;
group_id groupIdentifierFrom = 1;
int8u sceneIdentifierFrom = 2;
}
/** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */
fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
/** Retrieves the requested scene entry from its Scene table. */
fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
/** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */
fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
/** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */
fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
/** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */
fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
/** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */
fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a scene to be added using a finer scene transition time than the AddScene command. */
fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64;
/** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */
fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66;
}
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
enum DelayedAllOffEffectVariantEnum : enum8 {
kDelayedOffFastFade = 0;
kNoFade = 1;
kDelayedOffSlowFade = 2;
}
enum DyingLightEffectVariantEnum : enum8 {
kDyingLightFadeOff = 0;
}
enum EffectIdentifierEnum : enum8 {
kDelayedAllOff = 0;
kDyingLight = 1;
}
enum StartUpOnOffEnum : enum8 {
kOff = 0;
kOn = 1;
kToggle = 2;
}
bitmap Feature : bitmap32 {
kLighting = 0x1;
kDeadFrontBehavior = 0x2;
kOffOnly = 0x4;
}
bitmap OnOffControlBitmap : bitmap8 {
kAcceptOnlyWhenOn = 0x1;
}
readonly attribute boolean onOff = 0;
readonly attribute optional boolean globalSceneControl = 16384;
attribute optional int16u onTime = 16385;
attribute optional int16u offWaitTime = 16386;
attribute access(write: manage) optional nullable StartUpOnOffEnum startUpOnOff = 16387;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct OffWithEffectRequest {
EffectIdentifierEnum effectIdentifier = 0;
enum8 effectVariant = 1;
}
request struct OnWithTimedOffRequest {
OnOffControlBitmap onOffControl = 0;
int16u onTime = 1;
int16u offWaitTime = 2;
}
/** On receipt of this command, a device SHALL enter its ‘Off’ state. This state is device dependent, but it is recommended that it is used for power off or similar functions. On receipt of the Off command, the OnTime attribute SHALL be set to 0. */
command Off(): DefaultSuccess = 0;
/** On receipt of this command, a device SHALL enter its ‘On’ state. This state is device dependent, but it is recommended that it is used for power on or similar functions. On receipt of the On command, if the value of the OnTime attribute is equal to 0, the device SHALL set the OffWaitTime attribute to 0. */
command On(): DefaultSuccess = 1;
/** On receipt of this command, if a device is in its ‘Off’ state it SHALL enter its ‘On’ state. Otherwise, if it is in its ‘On’ state it SHALL enter its ‘Off’ state. On receipt of the Toggle command, if the value of the OnOff attribute is equal to FALSE and if the value of the OnTime attribute is equal to 0, the device SHALL set the OffWaitTime attribute to 0. If the value of the OnOff attribute is equal to TRUE, the OnTime attribute SHALL be set to 0. */
command Toggle(): DefaultSuccess = 2;
/** The OffWithEffect command allows devices to be turned off using enhanced ways of fading. */
command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64;
/** The OnWithRecallGlobalScene command allows the recall of the settings when the device was turned off. */
command OnWithRecallGlobalScene(): DefaultSuccess = 65;
/** The OnWithTimedOff command allows devices to be turned on for a specific duration with a guarded off duration so that SHOULD the device be subsequently switched off, further OnWithTimedOff commands, received during this time, are prevented from turning the devices back on. */
command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66;
}
/** Attributes and commands for switching devices between 'On' and 'Off' states. */
cluster OnOff = 6 {
revision 6;
enum DelayedAllOffEffectVariantEnum : enum8 {
kDelayedOffFastFade = 0;
kNoFade = 1;
kDelayedOffSlowFade = 2;
}
enum DyingLightEffectVariantEnum : enum8 {
kDyingLightFadeOff = 0;
}
enum EffectIdentifierEnum : enum8 {
kDelayedAllOff = 0;
kDyingLight = 1;
}
enum StartUpOnOffEnum : enum8 {
kOff = 0;
kOn = 1;
kToggle = 2;
}
bitmap Feature : bitmap32 {
kLighting = 0x1;
kDeadFrontBehavior = 0x2;
kOffOnly = 0x4;
}
bitmap OnOffControlBitmap : bitmap8 {
kAcceptOnlyWhenOn = 0x1;
}
readonly attribute boolean onOff = 0;
readonly attribute optional boolean globalSceneControl = 16384;
attribute optional int16u onTime = 16385;
attribute optional int16u offWaitTime = 16386;
attribute access(write: manage) optional nullable StartUpOnOffEnum startUpOnOff = 16387;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct OffWithEffectRequest {
EffectIdentifierEnum effectIdentifier = 0;
enum8 effectVariant = 1;
}
request struct OnWithTimedOffRequest {
OnOffControlBitmap onOffControl = 0;
int16u onTime = 1;
int16u offWaitTime = 2;
}
/** On receipt of this command, a device SHALL enter its ‘Off’ state. This state is device dependent, but it is recommended that it is used for power off or similar functions. On receipt of the Off command, the OnTime attribute SHALL be set to 0. */
command Off(): DefaultSuccess = 0;
/** On receipt of this command, a device SHALL enter its ‘On’ state. This state is device dependent, but it is recommended that it is used for power on or similar functions. On receipt of the On command, if the value of the OnTime attribute is equal to 0, the device SHALL set the OffWaitTime attribute to 0. */
command On(): DefaultSuccess = 1;
/** On receipt of this command, if a device is in its ‘Off’ state it SHALL enter its ‘On’ state. Otherwise, if it is in its ‘On’ state it SHALL enter its ‘Off’ state. On receipt of the Toggle command, if the value of the OnOff attribute is equal to FALSE and if the value of the OnTime attribute is equal to 0, the device SHALL set the OffWaitTime attribute to 0. If the value of the OnOff attribute is equal to TRUE, the OnTime attribute SHALL be set to 0. */
command Toggle(): DefaultSuccess = 2;
/** The OffWithEffect command allows devices to be turned off using enhanced ways of fading. */
command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64;
/** The OnWithRecallGlobalScene command allows the recall of the settings when the device was turned off. */
command OnWithRecallGlobalScene(): DefaultSuccess = 65;
/** The OnWithTimedOff command allows devices to be turned on for a specific duration with a guarded off duration so that SHOULD the device be subsequently switched off, further OnWithTimedOff commands, received during this time, are prevented from turning the devices back on. */
command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66;
}
/** Attributes and commands for configuring On/Off switching devices. */
deprecated cluster OnOffSwitchConfiguration = 7 {
revision 1; // NOTE: Default/not specifically set
readonly attribute enum8 switchType = 0;
attribute enum8 switchActions = 16;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */
cluster LevelControl = 8 {
revision 5;
enum MoveModeEnum : enum8 {
kUp = 0;
kDown = 1;
}
enum StepModeEnum : enum8 {
kUp = 0;
kDown = 1;
}
bitmap Feature : bitmap32 {
kOnOff = 0x1;
kLighting = 0x2;
kFrequency = 0x4;
}
bitmap OptionsBitmap : bitmap8 {
kExecuteIfOff = 0x1;
kCoupleColorTempToLevel = 0x2;
}
readonly attribute nullable int8u currentLevel = 0;
readonly attribute optional int16u remainingTime = 1;
readonly attribute optional int8u minLevel = 2;
readonly attribute optional int8u maxLevel = 3;
readonly attribute optional int16u currentFrequency = 4;
readonly attribute optional int16u minFrequency = 5;
readonly attribute optional int16u maxFrequency = 6;
attribute OptionsBitmap options = 15;
attribute optional int16u onOffTransitionTime = 16;
attribute nullable int8u onLevel = 17;
attribute optional nullable int16u onTransitionTime = 18;
attribute optional nullable int16u offTransitionTime = 19;
attribute optional nullable int8u defaultMoveRate = 20;
attribute access(write: manage) optional nullable int8u startUpCurrentLevel = 16384;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct MoveToLevelRequest {
int8u level = 0;
nullable int16u transitionTime = 1;
OptionsBitmap optionsMask = 2;
OptionsBitmap optionsOverride = 3;
}
request struct MoveRequest {
MoveModeEnum moveMode = 0;
nullable int8u rate = 1;
OptionsBitmap optionsMask = 2;
OptionsBitmap optionsOverride = 3;
}
request struct StepRequest {
StepModeEnum stepMode = 0;
int8u stepSize = 1;
nullable int16u transitionTime = 2;
OptionsBitmap optionsMask = 3;
OptionsBitmap optionsOverride = 4;
}
request struct StopRequest {
OptionsBitmap optionsMask = 0;
OptionsBitmap optionsOverride = 1;
}
request struct MoveToLevelWithOnOffRequest {
int8u level = 0;
nullable int16u transitionTime = 1;
OptionsBitmap optionsMask = 2;
OptionsBitmap optionsOverride = 3;
}
request struct MoveWithOnOffRequest {
MoveModeEnum moveMode = 0;
nullable int8u rate = 1;
OptionsBitmap optionsMask = 2;
OptionsBitmap optionsOverride = 3;
}
request struct StepWithOnOffRequest {
StepModeEnum stepMode = 0;
int8u stepSize = 1;
nullable int16u transitionTime = 2;
OptionsBitmap optionsMask = 3;
OptionsBitmap optionsOverride = 4;
}
request struct StopWithOnOffRequest {
OptionsBitmap optionsMask = 0;
OptionsBitmap optionsOverride = 1;
}
request struct MoveToClosestFrequencyRequest {
int16u frequency = 0;
}
/** Command description for MoveToLevel */
command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
/** Command description for Move */
command Move(MoveRequest): DefaultSuccess = 1;
/** Command description for Step */
command Step(StepRequest): DefaultSuccess = 2;
/** Command description for Stop */
command Stop(StopRequest): DefaultSuccess = 3;
/** Command description for MoveToLevelWithOnOff */
command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4;
/** Command description for MoveWithOnOff */
command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5;
/** Command description for StepWithOnOff */
command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6;
/** Command description for StopWithOnOff */
command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7;
/** Change the currrent frequency to the provided one, or a close
approximation if the exact provided one is not possible. */
command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8;
}
/** An interface for reading the value of a binary measurement and accessing various characteristics of that measurement. */
deprecated cluster BinaryInputBasic = 15 {
revision 1; // NOTE: Default/not specifically set
attribute optional char_string<16> activeText = 4;
attribute optional char_string<16> description = 28;
attribute optional char_string<16> inactiveText = 46;
attribute boolean outOfService = 81;
readonly attribute optional enum8 polarity = 84;
attribute boolean presentValue = 85;
attribute optional enum8 reliability = 103;
readonly attribute bitmap8 statusFlags = 111;
readonly attribute optional int32u applicationType = 256;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */
cluster Descriptor = 29 {
revision 2;
bitmap Feature : bitmap32 {
kTagList = 0x1;
}
struct DeviceTypeStruct {
devtype_id deviceType = 0;
int16u revision = 1;
}
struct SemanticTagStruct {
nullable vendor_id mfgCode = 0;
enum8 namespaceID = 1;
enum8 tag = 2;
optional nullable char_string label = 3;
}
readonly attribute DeviceTypeStruct deviceTypeList[] = 0;
readonly attribute cluster_id serverList[] = 1;
readonly attribute cluster_id clientList[] = 2;
readonly attribute endpoint_no partsList[] = 3;
readonly attribute optional SemanticTagStruct tagList[] = 4;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** The Binding Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for supporting the binding table. */
cluster Binding = 30 {
revision 1; // NOTE: Default/not specifically set
fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
optional cluster_id cluster = 4;
fabric_idx fabricIndex = 254;
}
attribute access(write: manage) TargetStruct binding[] = 0;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** The Access Control Cluster exposes a data model view of a
Node's Access Control List (ACL), which codifies the rules used to manage
and enforce Access Control for the Node's endpoints and their associated
cluster instances. */
cluster AccessControl = 31 {
revision 1; // NOTE: Default/not specifically set
enum AccessControlEntryAuthModeEnum : enum8 {
kPASE = 1;
kCASE = 2;
kGroup = 3;
}
enum AccessControlEntryPrivilegeEnum : enum8 {
kView = 1;
kProxyView = 2;
kOperate = 3;
kManage = 4;
kAdminister = 5;
}
enum ChangeTypeEnum : enum8 {
kChanged = 0;
kAdded = 1;
kRemoved = 2;
}
struct AccessControlTargetStruct {
nullable cluster_id cluster = 0;
nullable endpoint_no endpoint = 1;
nullable devtype_id deviceType = 2;
}
fabric_scoped struct AccessControlEntryStruct {
fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1;
fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2;
nullable fabric_sensitive int64u subjects[] = 3;
nullable fabric_sensitive AccessControlTargetStruct targets[] = 4;
fabric_idx fabricIndex = 254;
}
fabric_scoped struct AccessControlExtensionStruct {
fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable int16u adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
nullable AccessControlEntryStruct latestValue = 4;
fabric_idx fabricIndex = 254;
}
fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable int16u adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
nullable AccessControlExtensionStruct latestValue = 4;
fabric_idx fabricIndex = 254;
}
attribute access(read: administer, write: administer) AccessControlEntryStruct acl[] = 0;
attribute access(read: administer, write: administer) optional AccessControlExtensionStruct extension[] = 1;
readonly attribute int16u subjectsPerAccessControlEntry = 2;
readonly attribute int16u targetsPerAccessControlEntry = 3;
readonly attribute int16u accessControlEntriesPerFabric = 4;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** This cluster provides a standardized way for a Node (typically a Bridge, but could be any Node) to expose action information. */
cluster Actions = 37 {
revision 1; // NOTE: Default/not specifically set
enum ActionErrorEnum : enum8 {
kUnknown = 0;
kInterrupted = 1;
}
enum ActionStateEnum : enum8 {
kInactive = 0;
kActive = 1;
kPaused = 2;
kDisabled = 3;
}
enum ActionTypeEnum : enum8 {
kOther = 0;
kScene = 1;
kSequence = 2;
kAutomation = 3;
kException = 4;
kNotification = 5;
kAlarm = 6;
}
enum EndpointListTypeEnum : enum8 {
kOther = 0;
kRoom = 1;
kZone = 2;
}
bitmap CommandBits : bitmap16 {
kInstantAction = 0x1;
kInstantActionWithTransition = 0x2;
kStartAction = 0x4;
kStartActionWithDuration = 0x8;
kStopAction = 0x10;
kPauseAction = 0x20;
kPauseActionWithDuration = 0x40;
kResumeAction = 0x80;
kEnableAction = 0x100;
kEnableActionWithDuration = 0x200;
kDisableAction = 0x400;
kDisableActionWithDuration = 0x800;
}
struct ActionStruct {
int16u actionID = 0;
char_string<32> name = 1;
ActionTypeEnum type = 2;
int16u endpointListID = 3;
CommandBits supportedCommands = 4;
ActionStateEnum state = 5;
}
struct EndpointListStruct {
int16u endpointListID = 0;
char_string<32> name = 1;
EndpointListTypeEnum type = 2;
endpoint_no endpoints[] = 3;
}
info event StateChanged = 0 {
int16u actionID = 0;
int32u invokeID = 1;
ActionStateEnum newState = 2;
}
info event ActionFailed = 1 {
int16u actionID = 0;
int32u invokeID = 1;
ActionStateEnum newState = 2;
ActionErrorEnum error = 3;
}
readonly attribute ActionStruct actionList[] = 0;
readonly attribute EndpointListStruct endpointLists[] = 1;
readonly attribute optional long_char_string<512> setupURL = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct InstantActionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
}
request struct InstantActionWithTransitionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
int16u transitionTime = 2;
}
request struct StartActionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
}
request struct StartActionWithDurationRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
int32u duration = 2;
}
request struct StopActionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
}
request struct PauseActionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
}
request struct PauseActionWithDurationRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
int32u duration = 2;
}
request struct ResumeActionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
}
request struct EnableActionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
}
request struct EnableActionWithDurationRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
int32u duration = 2;
}
request struct DisableActionRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
}
request struct DisableActionWithDurationRequest {
int16u actionID = 0;
optional int32u invokeID = 1;
int32u duration = 2;
}
/** This command triggers an action (state change) on the involved endpoints. */
command InstantAction(InstantActionRequest): DefaultSuccess = 0;
/** This command triggers an action (state change) on the involved endpoints, with a specified time to transition from the current state to the new state. */
command InstantActionWithTransition(InstantActionWithTransitionRequest): DefaultSuccess = 1;
/** This command triggers the commencement of an action on the involved endpoints. */
command StartAction(StartActionRequest): DefaultSuccess = 2;
/** This command triggers the commencement of an action (with a duration) on the involved endpoints. */
command StartActionWithDuration(StartActionWithDurationRequest): DefaultSuccess = 3;
/** This command stops the ongoing action on the involved endpoints. */
command StopAction(StopActionRequest): DefaultSuccess = 4;
/** This command pauses an ongoing action. */
command PauseAction(PauseActionRequest): DefaultSuccess = 5;
/** This command pauses an ongoing action with a duration. */
command PauseActionWithDuration(PauseActionWithDurationRequest): DefaultSuccess = 6;
/** This command resumes a previously paused action. */
command ResumeAction(ResumeActionRequest): DefaultSuccess = 7;
/** This command enables a certain action or automation. */
command EnableAction(EnableActionRequest): DefaultSuccess = 8;
/** This command enables a certain action or automation with a duration. */
command EnableActionWithDuration(EnableActionWithDurationRequest): DefaultSuccess = 9;
/** This command disables a certain action or automation. */
command DisableAction(DisableActionRequest): DefaultSuccess = 10;
/** This command disables a certain action or automation with a duration. */
command DisableActionWithDuration(DisableActionWithDurationRequest): DefaultSuccess = 11;
}
/** This cluster provides attributes and events for determining basic information about Nodes, which supports both
Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number,
which apply to the whole Node. Also allows setting user device information such as location. */
cluster BasicInformation = 40 {
revision 3;
enum ColorEnum : enum8 {
kBlack = 0;
kNavy = 1;
kGreen = 2;
kTeal = 3;
kMaroon = 4;
kPurple = 5;
kOlive = 6;
kGray = 7;
kBlue = 8;
kLime = 9;
kAqua = 10;
kRed = 11;
kFuchsia = 12;
kYellow = 13;
kWhite = 14;
kNickel = 15;
kChrome = 16;
kBrass = 17;
kCopper = 18;
kSilver = 19;
kGold = 20;
}
enum ProductFinishEnum : enum8 {
kOther = 0;
kMatte = 1;
kSatin = 2;
kPolished = 3;
kRugged = 4;
kFabric = 5;
}
struct CapabilityMinimaStruct {
int16u caseSessionsPerFabric = 0;
int16u subscriptionsPerFabric = 1;
}
struct ProductAppearanceStruct {
ProductFinishEnum finish = 0;
nullable ColorEnum primaryColor = 1;
}
critical event StartUp = 0 {
int32u softwareVersion = 0;
}
critical event ShutDown = 1 {
}
info event Leave = 2 {
fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
boolean reachableNewValue = 0;
}
readonly attribute int16u dataModelRevision = 0;
readonly attribute char_string<32> vendorName = 1;
readonly attribute vendor_id vendorID = 2;