@@ -428,6 +428,61 @@ server cluster GroupKeyManagement = 63 {
428
428
command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4;
429
429
}
430
430
431
+ server cluster Groups = 4 {
432
+ readonly attribute bitmap8 nameSupport = 0;
433
+ readonly attribute int16u clusterRevision = 65533;
434
+
435
+ request struct AddGroupRequest {
436
+ group_id groupId = 0;
437
+ CHAR_STRING groupName = 1;
438
+ }
439
+
440
+ request struct ViewGroupRequest {
441
+ group_id groupId = 0;
442
+ }
443
+
444
+ request struct GetGroupMembershipRequest {
445
+ group_id groupList[] = 0;
446
+ }
447
+
448
+ request struct RemoveGroupRequest {
449
+ group_id groupId = 0;
450
+ }
451
+
452
+ request struct AddGroupIfIdentifyingRequest {
453
+ group_id groupId = 0;
454
+ CHAR_STRING groupName = 1;
455
+ }
456
+
457
+ response struct AddGroupResponse = 0 {
458
+ ENUM8 status = 0;
459
+ group_id groupId = 1;
460
+ }
461
+
462
+ response struct ViewGroupResponse = 1 {
463
+ ENUM8 status = 0;
464
+ group_id groupId = 1;
465
+ CHAR_STRING groupName = 2;
466
+ }
467
+
468
+ response struct GetGroupMembershipResponse = 2 {
469
+ nullable INT8U capacity = 0;
470
+ group_id groupList[] = 1;
471
+ }
472
+
473
+ response struct RemoveGroupResponse = 3 {
474
+ ENUM8 status = 0;
475
+ group_id groupId = 1;
476
+ }
477
+
478
+ command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0;
479
+ command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
480
+ command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2;
481
+ command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3;
482
+ command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4;
483
+ command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
484
+ }
485
+
431
486
server cluster Identify = 3 {
432
487
enum IdentifyEffectIdentifier : ENUM8 {
433
488
kBlink = 0;
@@ -944,6 +999,111 @@ server cluster PowerSource = 47 {
944
999
readonly attribute int16u clusterRevision = 65533;
945
1000
}
946
1001
1002
+ client cluster Scenes = 5 {
1003
+ bitmap ScenesCopyMode : BITMAP8 {
1004
+ kCopyAllScenes = 0x1;
1005
+ }
1006
+
1007
+ struct SceneExtensionFieldSet {
1008
+ CLUSTER_ID clusterId = 0;
1009
+ INT8U length = 1;
1010
+ INT8U value = 2;
1011
+ }
1012
+
1013
+ readonly attribute int8u sceneCount = 0;
1014
+ readonly attribute int8u currentScene = 1;
1015
+ readonly attribute int16u currentGroup = 2;
1016
+ readonly attribute boolean sceneValid = 3;
1017
+ readonly attribute bitmap8 nameSupport = 4;
1018
+ readonly attribute attrib_id attributeList[] = 65531;
1019
+ readonly attribute int16u clusterRevision = 65533;
1020
+
1021
+ request struct AddSceneRequest {
1022
+ INT16U groupId = 0;
1023
+ INT8U sceneId = 1;
1024
+ INT16U transitionTime = 2;
1025
+ CHAR_STRING sceneName = 3;
1026
+ SceneExtensionFieldSet extensionFieldSets[] = 4;
1027
+ }
1028
+
1029
+ request struct ViewSceneRequest {
1030
+ INT16U groupId = 0;
1031
+ INT8U sceneId = 1;
1032
+ }
1033
+
1034
+ request struct RemoveSceneRequest {
1035
+ INT16U groupId = 0;
1036
+ INT8U sceneId = 1;
1037
+ }
1038
+
1039
+ request struct RemoveAllScenesRequest {
1040
+ INT16U groupId = 0;
1041
+ }
1042
+
1043
+ request struct StoreSceneRequest {
1044
+ INT16U groupId = 0;
1045
+ INT8U sceneId = 1;
1046
+ }
1047
+
1048
+ request struct RecallSceneRequest {
1049
+ INT16U groupId = 0;
1050
+ INT8U sceneId = 1;
1051
+ INT16U transitionTime = 2;
1052
+ }
1053
+
1054
+ request struct GetSceneMembershipRequest {
1055
+ INT16U groupId = 0;
1056
+ }
1057
+
1058
+ response struct AddSceneResponse = 0 {
1059
+ ENUM8 status = 0;
1060
+ INT16U groupId = 1;
1061
+ INT8U sceneId = 2;
1062
+ }
1063
+
1064
+ response struct ViewSceneResponse = 1 {
1065
+ ENUM8 status = 0;
1066
+ INT16U groupId = 1;
1067
+ INT8U sceneId = 2;
1068
+ INT16U transitionTime = 3;
1069
+ CHAR_STRING sceneName = 4;
1070
+ SceneExtensionFieldSet extensionFieldSets[] = 5;
1071
+ }
1072
+
1073
+ response struct RemoveSceneResponse = 2 {
1074
+ ENUM8 status = 0;
1075
+ INT16U groupId = 1;
1076
+ INT8U sceneId = 2;
1077
+ }
1078
+
1079
+ response struct RemoveAllScenesResponse = 3 {
1080
+ ENUM8 status = 0;
1081
+ INT16U groupId = 1;
1082
+ }
1083
+
1084
+ response struct StoreSceneResponse = 4 {
1085
+ ENUM8 status = 0;
1086
+ INT16U groupId = 1;
1087
+ INT8U sceneId = 2;
1088
+ }
1089
+
1090
+ response struct GetSceneMembershipResponse = 6 {
1091
+ ENUM8 status = 0;
1092
+ INT8U capacity = 1;
1093
+ INT16U groupId = 2;
1094
+ INT8U sceneCount = 3;
1095
+ INT8U sceneList[] = 4;
1096
+ }
1097
+
1098
+ command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
1099
+ command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
1100
+ command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
1101
+ command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
1102
+ command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
1103
+ command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
1104
+ command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
1105
+ }
1106
+
947
1107
server cluster SoftwareDiagnostics = 52 {
948
1108
struct ThreadMetrics {
949
1109
INT64U id = 0;
@@ -1672,13 +1832,19 @@ endpoint 0 {
1672
1832
}
1673
1833
1674
1834
endpoint 1 {
1835
+ binding cluster Scenes;
1675
1836
1676
1837
server cluster Identify {
1677
1838
ram attribute identifyTime;
1678
1839
ram attribute identifyType;
1679
1840
ram attribute clusterRevision default = 4;
1680
1841
}
1681
1842
1843
+ server cluster Groups {
1844
+ ram attribute nameSupport;
1845
+ ram attribute clusterRevision default = 4;
1846
+ }
1847
+
1682
1848
server cluster Descriptor {
1683
1849
callback attribute deviceList;
1684
1850
callback attribute serverList;
@@ -1712,6 +1878,12 @@ endpoint 1 {
1712
1878
}
1713
1879
1714
1880
endpoint 2 {
1881
+ binding cluster Scenes;
1882
+
1883
+ server cluster Groups {
1884
+ ram attribute nameSupport;
1885
+ ram attribute clusterRevision default = 4;
1886
+ }
1715
1887
1716
1888
server cluster Descriptor {
1717
1889
callback attribute deviceList;
0 commit comments