Skip to content

Commit 1445676

Browse files
seb-faerestyled-commitsandy31415
authored andcommitted
Add group and scene clusters (#18141)
* Add group and scene clusters * Restyled by whitespace * Restyled by clang-format * Zap regen (#18153) * Add group and scene clusters * Restyled by whitespace * Restyled by clang-format * Rebase * Fix Merging error Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Andrei Litvin <andy314@gmail.com>
1 parent 36362b5 commit 1445676

10 files changed

+765
-53
lines changed

examples/window-app/common/window-app.matter

+172
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,61 @@ server cluster GroupKeyManagement = 63 {
428428
command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4;
429429
}
430430

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+
431486
server cluster Identify = 3 {
432487
enum IdentifyEffectIdentifier : ENUM8 {
433488
kBlink = 0;
@@ -944,6 +999,111 @@ server cluster PowerSource = 47 {
944999
readonly attribute int16u clusterRevision = 65533;
9451000
}
9461001

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+
9471107
server cluster SoftwareDiagnostics = 52 {
9481108
struct ThreadMetrics {
9491109
INT64U id = 0;
@@ -1672,13 +1832,19 @@ endpoint 0 {
16721832
}
16731833

16741834
endpoint 1 {
1835+
binding cluster Scenes;
16751836

16761837
server cluster Identify {
16771838
ram attribute identifyTime;
16781839
ram attribute identifyType;
16791840
ram attribute clusterRevision default = 4;
16801841
}
16811842

1843+
server cluster Groups {
1844+
ram attribute nameSupport;
1845+
ram attribute clusterRevision default = 4;
1846+
}
1847+
16821848
server cluster Descriptor {
16831849
callback attribute deviceList;
16841850
callback attribute serverList;
@@ -1712,6 +1878,12 @@ endpoint 1 {
17121878
}
17131879

17141880
endpoint 2 {
1881+
binding cluster Scenes;
1882+
1883+
server cluster Groups {
1884+
ram attribute nameSupport;
1885+
ram attribute clusterRevision default = 4;
1886+
}
17151887

17161888
server cluster Descriptor {
17171889
callback attribute deviceList;

0 commit comments

Comments
 (0)