[OTA] Add On/Off Light Device Type to ota-requestor-app (#21695)
diff --git a/examples/ota-requestor-app/esp32/main/CMakeLists.txt b/examples/ota-requestor-app/esp32/main/CMakeLists.txt
index 11ed9ce..7a7ac14 100644
--- a/examples/ota-requestor-app/esp32/main/CMakeLists.txt
+++ b/examples/ota-requestor-app/esp32/main/CMakeLists.txt
@@ -38,7 +38,10 @@
"${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/descriptor"
"${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/diagnostic-logs-server"
"${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ethernet-network-diagnostics-server"
+ "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/groups-server"
+ "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/identify-server"
"${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/localization-configuration-server"
+ "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/on-off-server"
"${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/time-format-localization-server"
"${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/fixed-label-server"
"${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/user-label-server"
diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter
index b7b9919..27b5cb6 100644
--- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter
+++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter
@@ -6,6 +6,168 @@
char_string<16> value = 1;
}
+server cluster Identify = 3 {
+ enum IdentifyEffectIdentifier : ENUM8 {
+ kBlink = 0;
+ kBreathe = 1;
+ kOkay = 2;
+ kChannelChange = 11;
+ kFinishEffect = 254;
+ kStopEffect = 255;
+ }
+
+ enum IdentifyEffectVariant : ENUM8 {
+ kDefault = 0;
+ }
+
+ enum IdentifyIdentifyType : ENUM8 {
+ kNone = 0;
+ kVisibleLight = 1;
+ kVisibleLED = 2;
+ kAudibleBeep = 3;
+ kDisplay = 4;
+ kActuator = 5;
+ }
+
+ attribute int16u identifyTime = 0;
+ readonly attribute enum8 identifyType = 1;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct IdentifyRequest {
+ INT16U identifyTime = 0;
+ }
+
+ request struct TriggerEffectRequest {
+ IdentifyEffectIdentifier effectIdentifier = 0;
+ IdentifyEffectVariant effectVariant = 1;
+ }
+
+ command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0;
+ command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64;
+}
+
+server cluster Groups = 4 {
+ bitmap GroupClusterFeature : BITMAP32 {
+ kGroupNames = 0x1;
+ }
+
+ readonly attribute bitmap8 nameSupport = 0;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct AddGroupRequest {
+ group_id groupId = 0;
+ CHAR_STRING groupName = 1;
+ }
+
+ request struct ViewGroupRequest {
+ group_id groupId = 0;
+ }
+
+ request struct GetGroupMembershipRequest {
+ group_id groupList[] = 0;
+ }
+
+ request struct RemoveGroupRequest {
+ group_id groupId = 0;
+ }
+
+ request struct AddGroupIfIdentifyingRequest {
+ group_id groupId = 0;
+ CHAR_STRING groupName = 1;
+ }
+
+ response struct AddGroupResponse = 0 {
+ ENUM8 status = 0;
+ group_id groupId = 1;
+ }
+
+ response struct ViewGroupResponse = 1 {
+ ENUM8 status = 0;
+ group_id groupId = 1;
+ CHAR_STRING groupName = 2;
+ }
+
+ response struct GetGroupMembershipResponse = 2 {
+ nullable INT8U capacity = 0;
+ group_id groupList[] = 1;
+ }
+
+ response struct RemoveGroupResponse = 3 {
+ ENUM8 status = 0;
+ group_id groupId = 1;
+ }
+
+ fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0;
+ fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
+ fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2;
+ fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3;
+ fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4;
+ fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
+}
+
+server cluster OnOff = 6 {
+ enum OnOffDelayedAllOffEffectVariant : ENUM8 {
+ kFadeToOffIn0p8Seconds = 0;
+ kNoFade = 1;
+ k50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds = 2;
+ }
+
+ enum OnOffDyingLightEffectVariant : ENUM8 {
+ k20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second = 0;
+ }
+
+ enum OnOffEffectIdentifier : ENUM8 {
+ kDelayedAllOff = 0;
+ kDyingLight = 1;
+ }
+
+ enum OnOffStartUpOnOff : ENUM8 {
+ kOff = 0;
+ kOn = 1;
+ kTogglePreviousOnOff = 2;
+ }
+
+ bitmap OnOffControl : BITMAP8 {
+ kAcceptOnlyWhenOn = 0x1;
+ }
+
+ bitmap OnOffFeature : BITMAP32 {
+ kLighting = 0x1;
+ }
+
+ bitmap SceneFeatures : BITMAP32 {
+ kSceneNames = 0x1;
+ }
+
+ readonly attribute boolean onOff = 0;
+ readonly attribute boolean globalSceneControl = 16384;
+ attribute int16u onTime = 16385;
+ attribute int16u offWaitTime = 16386;
+ attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct OffWithEffectRequest {
+ OnOffEffectIdentifier effectId = 0;
+ OnOffDelayedAllOffEffectVariant effectVariant = 1;
+ }
+
+ request struct OnWithTimedOffRequest {
+ OnOffControl onOffControl = 0;
+ int16u onTime = 1;
+ int16u offWaitTime = 2;
+ }
+
+ command Off(): DefaultSuccess = 0;
+ command On(): DefaultSuccess = 1;
+ command Toggle(): DefaultSuccess = 2;
+ command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64;
+ command OnWithRecallGlobalScene(): DefaultSuccess = 65;
+ command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66;
+}
+
server cluster Descriptor = 29 {
struct DeviceType {
devtype_id type = 0;
@@ -16,6 +178,9 @@
readonly attribute CLUSTER_ID serverList[] = 1;
readonly attribute CLUSTER_ID clientList[] = 2;
readonly attribute ENDPOINT_NO partsList[] = 3;
+ readonly attribute command_id generatedCommandList[] = 65528;
+ readonly attribute command_id acceptedCommandList[] = 65529;
+ readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
@@ -965,6 +1130,44 @@
ram attribute clusterRevision default = 1;
}
}
+endpoint 1 {
+ device type anonymousEndpointType = 259;
+
+ server cluster Identify {
+ ram attribute identifyTime;
+ ram attribute identifyType;
+ ram attribute featureMap;
+ ram attribute clusterRevision default = 4;
+ }
+
+ server cluster Groups {
+ ram attribute nameSupport;
+ ram attribute featureMap;
+ ram attribute clusterRevision default = 4;
+ }
+
+ server cluster OnOff {
+ persist attribute onOff;
+ ram attribute globalSceneControl default = 1;
+ ram attribute onTime;
+ ram attribute offWaitTime;
+ persist attribute startUpOnOff default = 0xFF;
+ ram attribute featureMap default = 1;
+ ram attribute clusterRevision default = 4;
+ }
+
+ server cluster Descriptor {
+ callback attribute deviceList;
+ callback attribute serverList;
+ callback attribute clientList;
+ callback attribute partsList;
+ callback attribute generatedCommandList;
+ callback attribute acceptedCommandList;
+ callback attribute attributeList;
+ ram attribute featureMap;
+ ram attribute clusterRevision default = 1;
+ }
+}
endpoint 65534 {
device type anonymousEndpointType = 61442;
diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap
index 36c4c75..bbe0980 100644
--- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap
+++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap
@@ -4988,6 +4988,1848 @@
},
{
"name": "Anonymous Endpoint Type",
+ "deviceTypeName": "MA-onofflightswitch",
+ "deviceTypeCode": 259,
+ "deviceTypeProfileId": 259,
+ "clusters": [
+ {
+ "name": "Identify",
+ "code": 3,
+ "mfgCode": null,
+ "define": "IDENTIFY_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "commands": [
+ {
+ "name": "Identify",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "TriggerEffect",
+ "code": 64,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "client",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "4",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Identify",
+ "code": 3,
+ "mfgCode": null,
+ "define": "IDENTIFY_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "attributes": [
+ {
+ "name": "identify time",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "identify type",
+ "code": 1,
+ "mfgCode": null,
+ "side": "server",
+ "type": "enum8",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GeneratedCommandList",
+ "code": 65528,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AcceptedCommandList",
+ "code": 65529,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AttributeList",
+ "code": 65531,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "4",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Groups",
+ "code": 4,
+ "mfgCode": null,
+ "define": "GROUPS_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "commands": [
+ {
+ "name": "AddGroup",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "ViewGroup",
+ "code": 1,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "GetGroupMembership",
+ "code": 2,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveGroup",
+ "code": 3,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveAllGroups",
+ "code": 4,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "AddGroupIfIdentifying",
+ "code": 5,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "client",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Groups",
+ "code": 4,
+ "mfgCode": null,
+ "define": "GROUPS_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "commands": [
+ {
+ "name": "AddGroupResponse",
+ "code": 0,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "ViewGroupResponse",
+ "code": 1,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "GetGroupMembershipResponse",
+ "code": 2,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveGroupResponse",
+ "code": 3,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "name support",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap8",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GeneratedCommandList",
+ "code": 65528,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AcceptedCommandList",
+ "code": 65529,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AttributeList",
+ "code": 65531,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "4",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Scenes",
+ "code": 5,
+ "mfgCode": null,
+ "define": "SCENES_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "commands": [
+ {
+ "name": "AddScene",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "ViewScene",
+ "code": 1,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveScene",
+ "code": 2,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveAllScenes",
+ "code": 3,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "StoreScene",
+ "code": 4,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RecallScene",
+ "code": 5,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "GetSceneMembership",
+ "code": 6,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "EnhancedAddScene",
+ "code": 64,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
+ },
+ {
+ "name": "EnhancedViewScene",
+ "code": 65,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
+ },
+ {
+ "name": "CopyScene",
+ "code": 66,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
+ }
+ ],
+ "attributes": [
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "client",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "4",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Scenes",
+ "code": 5,
+ "mfgCode": null,
+ "define": "SCENES_CLUSTER",
+ "side": "server",
+ "enabled": 0,
+ "commands": [
+ {
+ "name": "AddSceneResponse",
+ "code": 0,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "ViewSceneResponse",
+ "code": 1,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveSceneResponse",
+ "code": 2,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveAllScenesResponse",
+ "code": 3,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "StoreSceneResponse",
+ "code": 4,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "GetSceneMembershipResponse",
+ "code": 6,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "EnhancedAddSceneResponse",
+ "code": 64,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 0,
+ "outgoing": 1
+ },
+ {
+ "name": "EnhancedViewSceneResponse",
+ "code": 65,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 0,
+ "outgoing": 1
+ },
+ {
+ "name": "CopySceneResponse",
+ "code": 66,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 0,
+ "outgoing": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "SceneCount",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "CurrentScene",
+ "code": 1,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "CurrentGroup",
+ "code": 2,
+ "mfgCode": null,
+ "side": "server",
+ "type": "group_id",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0000",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "SceneValid",
+ "code": 3,
+ "mfgCode": null,
+ "side": "server",
+ "type": "boolean",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "NameSupport",
+ "code": 4,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap8",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "LastConfiguredBy",
+ "code": 5,
+ "mfgCode": null,
+ "side": "server",
+ "type": "node_id",
+ "included": 0,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GeneratedCommandList",
+ "code": 65528,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AcceptedCommandList",
+ "code": 65529,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AttributeList",
+ "code": 65531,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "4",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "On/Off",
+ "code": 6,
+ "mfgCode": null,
+ "define": "ON_OFF_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "commands": [
+ {
+ "name": "Off",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "On",
+ "code": 1,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "Toggle",
+ "code": 2,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "OffWithEffect",
+ "code": 64,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
+ },
+ {
+ "name": "OnWithRecallGlobalScene",
+ "code": 65,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
+ },
+ {
+ "name": "OnWithTimedOff",
+ "code": 66,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
+ }
+ ],
+ "attributes": [
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "client",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "4",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "On/Off",
+ "code": 6,
+ "mfgCode": null,
+ "define": "ON_OFF_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "attributes": [
+ {
+ "name": "OnOff",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "boolean",
+ "included": 1,
+ "storageOption": "NVM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GlobalSceneControl",
+ "code": 16384,
+ "mfgCode": null,
+ "side": "server",
+ "type": "boolean",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "OnTime",
+ "code": 16385,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "OffWaitTime",
+ "code": 16386,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "StartUpOnOff",
+ "code": 16387,
+ "mfgCode": null,
+ "side": "server",
+ "type": "OnOffStartUpOnOff",
+ "included": 1,
+ "storageOption": "NVM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0xFF",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GeneratedCommandList",
+ "code": 65528,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AcceptedCommandList",
+ "code": 65529,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AttributeList",
+ "code": 65531,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "4",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Level Control",
+ "code": 8,
+ "mfgCode": null,
+ "define": "LEVEL_CONTROL_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "commands": [
+ {
+ "name": "MoveToLevel",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "Move",
+ "code": 1,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "Step",
+ "code": 2,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "Stop",
+ "code": 3,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "MoveToLevelWithOnOff",
+ "code": 4,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "MoveWithOnOff",
+ "code": 5,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "StepWithOnOff",
+ "code": 6,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "StopWithOnOff",
+ "code": 7,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "MoveToClosestFrequency",
+ "code": 8,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
+ }
+ ],
+ "attributes": [
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "client",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "5",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Level Control",
+ "code": 8,
+ "mfgCode": null,
+ "define": "LEVEL_CONTROL_CLUSTER",
+ "side": "server",
+ "enabled": 0,
+ "attributes": [
+ {
+ "name": "CurrentLevel",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "NVM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x01",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "RemainingTime",
+ "code": 1,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0000",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "MinLevel",
+ "code": 2,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x01",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "MaxLevel",
+ "code": 3,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0xFE",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "CurrentFrequency",
+ "code": 4,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0000",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "MinFrequency",
+ "code": 5,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0000",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "MaxFrequency",
+ "code": 6,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0000",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "Options",
+ "code": 15,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap8",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 0,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "OnOffTransitionTime",
+ "code": 16,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0000",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "OnLevel",
+ "code": 17,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0xFF",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "OnTransitionTime",
+ "code": 18,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "OffTransitionTime",
+ "code": 19,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "DefaultMoveRate",
+ "code": 20,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "50",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "StartUpCurrentLevel",
+ "code": 16384,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "NVM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "255",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GeneratedCommandList",
+ "code": 65528,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AcceptedCommandList",
+ "code": 65529,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AttributeList",
+ "code": 65531,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 0,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "5",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Descriptor",
+ "code": 29,
+ "mfgCode": null,
+ "define": "DESCRIPTOR_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "attributes": [
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "client",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Descriptor",
+ "code": 29,
+ "mfgCode": null,
+ "define": "DESCRIPTOR_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "attributes": [
+ {
+ "name": "device list",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "server list",
+ "code": 1,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "client list",
+ "code": 2,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "parts list",
+ "code": 3,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GeneratedCommandList",
+ "code": 65528,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AcceptedCommandList",
+ "code": 65529,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AttributeList",
+ "code": 65531,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Binding",
+ "code": 30,
+ "mfgCode": null,
+ "define": "BINDING_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "attributes": [
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "client",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Binding",
+ "code": 30,
+ "mfgCode": null,
+ "define": "BINDING_CLUSTER",
+ "side": "server",
+ "enabled": 0,
+ "attributes": [
+ {
+ "name": "Binding",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "GeneratedCommandList",
+ "code": 65528,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AcceptedCommandList",
+ "code": 65529,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "AttributeList",
+ "code": 65531,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "1",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Anonymous Endpoint Type",
"deviceTypeName": "MA-secondary-network-commissioning",
"deviceTypeCode": 61442,
"deviceTypeProfileId": 259,
@@ -5541,6 +7383,15 @@
"endpointTypeName": "Anonymous Endpoint Type",
"endpointTypeIndex": 1,
"profileId": 259,
+ "endpointId": 1,
+ "networkId": 0,
+ "endpointVersion": 1,
+ "deviceIdentifier": 259
+ },
+ {
+ "endpointTypeName": "Anonymous Endpoint Type",
+ "endpointTypeIndex": 2,
+ "profileId": 259,
"endpointId": 65534,
"networkId": 0,
"endpointVersion": 1,
diff --git a/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp
index 38d4d01..c5fc939 100644
--- a/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp
@@ -256,6 +256,134 @@
} // namespace GroupKeyManagement
+namespace Groups {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::AddGroup::Id: {
+ Commands::AddGroup::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupsClusterAddGroupCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::ViewGroup::Id: {
+ Commands::ViewGroup::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupsClusterViewGroupCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::GetGroupMembership::Id: {
+ Commands::GetGroupMembership::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupsClusterGetGroupMembershipCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::RemoveGroup::Id: {
+ Commands::RemoveGroup::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupsClusterRemoveGroupCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::RemoveAllGroups::Id: {
+ Commands::RemoveAllGroups::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupsClusterRemoveAllGroupsCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::AddGroupIfIdentifying::Id: {
+ Commands::AddGroupIfIdentifying::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupsClusterAddGroupIfIdentifyingCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ default: {
+ // Unrecognized command ID, error status will apply.
+ apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
+ ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI,
+ ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
+ return;
+ }
+ }
+ }
+
+ if (CHIP_NO_ERROR != TLVError || !wasHandled)
+ {
+ apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
+ ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
+ }
+}
+
+} // namespace Groups
+
+namespace Identify {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::Identify::Id: {
+ Commands::Identify::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfIdentifyClusterIdentifyCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::TriggerEffect::Id: {
+ Commands::TriggerEffect::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfIdentifyClusterTriggerEffectCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ default: {
+ // Unrecognized command ID, error status will apply.
+ apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
+ ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI,
+ ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
+ return;
+ }
+ }
+ }
+
+ if (CHIP_NO_ERROR != TLVError || !wasHandled)
+ {
+ apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
+ ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
+ }
+}
+
+} // namespace Identify
+
namespace NetworkCommissioning {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
@@ -378,6 +506,88 @@
} // namespace OtaSoftwareUpdateRequestor
+namespace OnOff {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::Off::Id: {
+ Commands::Off::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOnOffClusterOffCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::On::Id: {
+ Commands::On::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOnOffClusterOnCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::Toggle::Id: {
+ Commands::Toggle::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOnOffClusterToggleCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::OffWithEffect::Id: {
+ Commands::OffWithEffect::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOnOffClusterOffWithEffectCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::OnWithRecallGlobalScene::Id: {
+ Commands::OnWithRecallGlobalScene::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOnOffClusterOnWithRecallGlobalSceneCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::OnWithTimedOff::Id: {
+ Commands::OnWithTimedOff::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOnOffClusterOnWithTimedOffCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ default: {
+ // Unrecognized command ID, error status will apply.
+ apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
+ ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI,
+ ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
+ return;
+ }
+ }
+ }
+
+ if (CHIP_NO_ERROR != TLVError || !wasHandled)
+ {
+ apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
+ ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
+ }
+}
+
+} // namespace OnOff
+
namespace OperationalCredentials {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
@@ -501,12 +711,21 @@
case Clusters::GroupKeyManagement::Id:
Clusters::GroupKeyManagement::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
+ case Clusters::Groups::Id:
+ Clusters::Groups::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ case Clusters::Identify::Id:
+ Clusters::Identify::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
case Clusters::NetworkCommissioning::Id:
Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OtaSoftwareUpdateRequestor::Id:
Clusters::OtaSoftwareUpdateRequestor::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
+ case Clusters::OnOff::Id:
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
case Clusters::OperationalCredentials::Id:
Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
diff --git a/zzz_generated/ota-requestor-app/zap-generated/PluginApplicationCallbacks.h b/zzz_generated/ota-requestor-app/zap-generated/PluginApplicationCallbacks.h
index 70f863f..33a985a 100644
--- a/zzz_generated/ota-requestor-app/zap-generated/PluginApplicationCallbacks.h
+++ b/zzz_generated/ota-requestor-app/zap-generated/PluginApplicationCallbacks.h
@@ -22,6 +22,9 @@
#include <app-common/zap-generated/callbacks/PluginCallbacks.h>
#define MATTER_PLUGINS_INIT \
+ MatterIdentifyPluginServerInitCallback(); \
+ MatterGroupsPluginServerInitCallback(); \
+ MatterOnOffPluginServerInitCallback(); \
MatterDescriptorPluginServerInitCallback(); \
MatterAccessControlPluginServerInitCallback(); \
MatterBasicPluginServerInitCallback(); \
diff --git a/zzz_generated/ota-requestor-app/zap-generated/access.h b/zzz_generated/ota-requestor-app/zap-generated/access.h
index f4bed20..78fc885 100644
--- a/zzz_generated/ota-requestor-app/zap-generated/access.h
+++ b/zzz_generated/ota-requestor-app/zap-generated/access.h
@@ -29,6 +29,7 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
+ /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -51,6 +52,7 @@
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
+ /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -73,6 +75,7 @@
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
+ /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
@@ -97,6 +100,7 @@
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
+ 6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -110,6 +114,7 @@
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
+ 16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -123,6 +128,7 @@
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
+ kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \
@@ -138,6 +144,12 @@
// Parallel array data (*cluster*, command, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__CLUSTER { \
+ 3, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
+ 3, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
+ 4, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
+ 4, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
+ 4, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
+ 4, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
48, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
48, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
48, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
@@ -167,6 +179,12 @@
// Parallel array data (cluster, *command*, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__COMMAND { \
+ 0, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
+ 64, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
+ 0, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
+ 3, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
+ 4, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
+ 5, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
0, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
2, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
4, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
@@ -196,6 +214,12 @@
// Parallel array data (cluster, command, *privilege*) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__PRIVILEGE { \
+ kMatterAccessPrivilegeManage, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
diff --git a/zzz_generated/ota-requestor-app/zap-generated/callback-stub.cpp b/zzz_generated/ota-requestor-app/zap-generated/callback-stub.cpp
index 01b5df3..b0e6e30 100644
--- a/zzz_generated/ota-requestor-app/zap-generated/callback-stub.cpp
+++ b/zzz_generated/ota-requestor-app/zap-generated/callback-stub.cpp
@@ -53,6 +53,12 @@
case ZCL_GROUP_KEY_MANAGEMENT_CLUSTER_ID:
emberAfGroupKeyManagementClusterInitCallback(endpoint);
break;
+ case ZCL_GROUPS_CLUSTER_ID:
+ emberAfGroupsClusterInitCallback(endpoint);
+ break;
+ case ZCL_IDENTIFY_CLUSTER_ID:
+ emberAfIdentifyClusterInitCallback(endpoint);
+ break;
case ZCL_LOCALIZATION_CONFIGURATION_CLUSTER_ID:
emberAfLocalizationConfigurationClusterInitCallback(endpoint);
break;
@@ -65,6 +71,9 @@
case ZCL_OTA_REQUESTOR_CLUSTER_ID:
emberAfOtaSoftwareUpdateRequestorClusterInitCallback(endpoint);
break;
+ case ZCL_ON_OFF_CLUSTER_ID:
+ emberAfOnOffClusterInitCallback(endpoint);
+ break;
case ZCL_OPERATIONAL_CREDENTIALS_CLUSTER_ID:
emberAfOperationalCredentialsClusterInitCallback(endpoint);
break;
@@ -120,6 +129,16 @@
// To prevent warning
(void) endpoint;
}
+void __attribute__((weak)) emberAfGroupsClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
+void __attribute__((weak)) emberAfIdentifyClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
void __attribute__((weak)) emberAfLocalizationConfigurationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -140,6 +159,11 @@
// To prevent warning
(void) endpoint;
}
+void __attribute__((weak)) emberAfOnOffClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
void __attribute__((weak)) emberAfOperationalCredentialsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
diff --git a/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h b/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h
index d9496d0..962f854 100644
--- a/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h
@@ -78,19 +78,19 @@
}
// This is an array of EmberAfAttributeMinMaxValue structures.
-#define GENERATED_MIN_MAX_DEFAULT_COUNT 1
+#define GENERATED_MIN_MAX_DEFAULT_COUNT 2
#define GENERATED_MIN_MAX_DEFAULTS \
{ \
\
/* Endpoint: 0, Cluster: Time Format Localization (server) */ \
- { \
- (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x1 \
- } /* HourFormat */ \
+ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x1 }, /* HourFormat */ \
+ \
+ /* Endpoint: 1, Cluster: On/Off (server) */ { (uint16_t) 0xFF, (uint16_t) 0x0, (uint16_t) 0x2 } /* StartUpOnOff */ \
}
#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
// This is an array of EmberAfAttributeMetadata structures.
-#define GENERATED_ATTRIBUTE_COUNT 119
+#define GENERATED_ATTRIBUTE_COUNT 139
#define GENERATED_ATTRIBUTES \
{ \
\
@@ -273,6 +273,37 @@
{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
\
+ /* Endpoint: 1, Cluster: Identify (server) */ \
+ { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \
+ { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 1, Cluster: Groups (server) */ \
+ { 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* name support */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 1, Cluster: On/Off (server) */ \
+ { 0x00000000, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0) }, /* OnOff */ \
+ { 0x00004000, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(1) }, /* GlobalSceneControl */ \
+ { 0x00004001, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0) }, /* OnTime */ \
+ { 0x00004002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0) }, /* OffWaitTime */ \
+ { 0x00004003, ZAP_TYPE(ENUM8), 1, \
+ ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | \
+ ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(1) }, /* StartUpOnOff */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 1, Cluster: Descriptor (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* device list */ \
+ { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* server list */ \
+ { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* client list */ \
+ { 0x00000003, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* parts list */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
/* Endpoint: 65534, Cluster: Descriptor (server) */ \
{ 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* device list */ \
{ 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* server list */ \
@@ -317,6 +348,16 @@
const EmberAfGenericClusterFunction chipFuncArrayTimeFormatLocalizationServer[] = { \
(EmberAfGenericClusterFunction) emberAfTimeFormatLocalizationClusterServerInitCallback, \
(EmberAfGenericClusterFunction) MatterTimeFormatLocalizationClusterServerPreAttributeChangedCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayIdentifyServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfIdentifyClusterServerInitCallback, \
+ (EmberAfGenericClusterFunction) MatterIdentifyClusterServerAttributeChangedCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayGroupsServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfGroupsClusterServerInitCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayOnOffServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback, \
};
// clang-format off
@@ -388,8 +429,37 @@
0x00000002 /* KeySetReadResponse */, \
0x00000005 /* KeySetReadAllIndicesResponse */, \
chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 65534, Cluster: Network Commissioning (server) */\
+ /* Endpoint: 1, Cluster: Identify (server) */\
/* AcceptedCommandList (index=49) */ \
+ 0x00000000 /* Identify */, \
+ 0x00000040 /* TriggerEffect */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: Groups (server) */\
+ /* AcceptedCommandList (index=52) */ \
+ 0x00000000 /* AddGroup */, \
+ 0x00000001 /* ViewGroup */, \
+ 0x00000002 /* GetGroupMembership */, \
+ 0x00000003 /* RemoveGroup */, \
+ 0x00000004 /* RemoveAllGroups */, \
+ 0x00000005 /* AddGroupIfIdentifying */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=59)*/ \
+ 0x00000000 /* AddGroupResponse */, \
+ 0x00000001 /* ViewGroupResponse */, \
+ 0x00000002 /* GetGroupMembershipResponse */, \
+ 0x00000003 /* RemoveGroupResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: On/Off (server) */\
+ /* AcceptedCommandList (index=64) */ \
+ 0x00000000 /* Off */, \
+ 0x00000001 /* On */, \
+ 0x00000002 /* Toggle */, \
+ 0x00000040 /* OffWithEffect */, \
+ 0x00000041 /* OnWithRecallGlobalScene */, \
+ 0x00000042 /* OnWithTimedOff */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 65534, Cluster: Network Commissioning (server) */\
+ /* AcceptedCommandList (index=71) */ \
0x00000000 /* ScanNetworks */, \
0x00000002 /* AddOrUpdateWiFiNetwork */, \
0x00000003 /* AddOrUpdateThreadNetwork */, \
@@ -397,7 +467,7 @@
0x00000006 /* ConnectNetwork */, \
0x00000008 /* ReorderNetwork */, \
chip::kInvalidCommandId /* end of list */, \
- /* GeneratedCommandList (index=56)*/ \
+ /* GeneratedCommandList (index=78)*/ \
0x00000001 /* ScanNetworksResponse */, \
0x00000005 /* NetworkConfigResponse */, \
0x00000007 /* ConnectNetworkResponse */, \
@@ -407,7 +477,7 @@
// clang-format on
#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
-#define GENERATED_CLUSTER_COUNT 17
+#define GENERATED_CLUSTER_COUNT 21
// clang-format off
#define GENERATED_CLUSTERS { \
@@ -577,9 +647,53 @@
.generatedCommandList = nullptr ,\
},\
{ \
+ /* Endpoint: 1, Cluster: Identify (server) */ \
+ .clusterId = 0x00000003, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(103), \
+ .attributeCount = 4, \
+ .clusterSize = 9, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
+ .functions = chipFuncArrayIdentifyServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 49 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Groups (server) */ \
+ .clusterId = 0x00000004, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(107), \
+ .attributeCount = 3, \
+ .clusterSize = 7, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayGroupsServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 52 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 59 ) ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: On/Off (server) */ \
+ .clusterId = 0x00000006, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(110), \
+ .attributeCount = 7, \
+ .clusterSize = 13, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayOnOffServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 64 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Descriptor (server) */ \
+ .clusterId = 0x0000001D, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(117), \
+ .attributeCount = 6, \
+ .clusterSize = 6, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
/* Endpoint: 65534, Cluster: Descriptor (server) */ \
.clusterId = 0x0000001D, \
- .attributes = ZAP_ATTRIBUTE_INDEX(103), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(123), \
.attributeCount = 6, \
.clusterSize = 4, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
@@ -590,13 +704,13 @@
{ \
/* Endpoint: 65534, Cluster: Network Commissioning (server) */ \
.clusterId = 0x00000031, \
- .attributes = ZAP_ATTRIBUTE_INDEX(109), \
+ .attributes = ZAP_ATTRIBUTE_INDEX(129), \
.attributeCount = 10, \
.clusterSize = 0, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 49 ) ,\
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 56 ) ,\
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 71 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 78 ) ,\
},\
}
@@ -604,12 +718,12 @@
#define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index])
-#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 16
+#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 20
// This is an array of EmberAfEndpointType structures.
#define GENERATED_ENDPOINT_TYPES \
{ \
- { ZAP_CLUSTER_INDEX(0), 15, 208 }, { ZAP_CLUSTER_INDEX(15), 2, 4 }, \
+ { ZAP_CLUSTER_INDEX(0), 15, 208 }, { ZAP_CLUSTER_INDEX(15), 4, 35 }, { ZAP_CLUSTER_INDEX(19), 2, 4 }, \
}
// Largest attribute size is needed for various buffers
@@ -621,50 +735,50 @@
#define ATTRIBUTE_SINGLETONS_SIZE (37)
// Total size of attribute storage
-#define ATTRIBUTE_MAX_SIZE (212)
+#define ATTRIBUTE_MAX_SIZE (247)
// Number of fixed endpoints
-#define FIXED_ENDPOINT_COUNT (2)
+#define FIXED_ENDPOINT_COUNT (3)
// Array of endpoints that are supported, the data inside
// the array is the endpoint number.
#define FIXED_ENDPOINT_ARRAY \
{ \
- 0x0000, 0xFFFE \
+ 0x0000, 0x0001, 0xFFFE \
}
// Array of profile ids
#define FIXED_PROFILE_IDS \
{ \
- 0x0103, 0x0103 \
+ 0x0103, 0x0103, 0x0103 \
}
// Array of device types
#define FIXED_DEVICE_TYPES \
{ \
- { 0x0016, 1 }, { 0xF002, 1 } \
+ { 0x0016, 1 }, { 0x0103, 1 }, { 0xF002, 1 } \
}
// Array of device type offsets
#define FIXED_DEVICE_TYPE_OFFSETS \
{ \
- 0, 1 \
+ 0, 1, 2 \
}
// Array of device type lengths
#define FIXED_DEVICE_TYPE_LENGTHS \
{ \
- 1, 1 \
+ 1, 1, 1 \
}
// Array of endpoint types supported on each endpoint
#define FIXED_ENDPOINT_TYPES \
{ \
- 0, 1 \
+ 0, 1, 2 \
}
// Array of networks supported on each endpoint
#define FIXED_NETWORKS \
{ \
- 0, 0 \
+ 0, 0, 0 \
}
diff --git a/zzz_generated/ota-requestor-app/zap-generated/gen_config.h b/zzz_generated/ota-requestor-app/zap-generated/gen_config.h
index d7c7ff1..2587d86 100644
--- a/zzz_generated/ota-requestor-app/zap-generated/gen_config.h
+++ b/zzz_generated/ota-requestor-app/zap-generated/gen_config.h
@@ -29,7 +29,10 @@
#define EMBER_APS_UNICAST_MESSAGE_COUNT 10
/**** Cluster endpoint counts ****/
-#define EMBER_AF_DESCRIPTOR_CLUSTER_SERVER_ENDPOINT_COUNT (2)
+#define EMBER_AF_IDENTIFY_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_DESCRIPTOR_CLUSTER_SERVER_ENDPOINT_COUNT (3)
#define EMBER_AF_ACCESS_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_OTA_PROVIDER_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
@@ -47,6 +50,21 @@
/**** Cluster Plugins ****/
+// Use this macro to check if the server side of the Identify cluster is included
+#define ZCL_USING_IDENTIFY_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_IDENTIFY_SERVER
+#define EMBER_AF_PLUGIN_IDENTIFY
+
+// Use this macro to check if the server side of the Groups cluster is included
+#define ZCL_USING_GROUPS_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_GROUPS_SERVER
+#define EMBER_AF_PLUGIN_GROUPS
+
+// Use this macro to check if the server side of the On/Off cluster is included
+#define ZCL_USING_ON_OFF_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_ON_OFF_SERVER
+#define EMBER_AF_PLUGIN_ON_OFF
+
// Use this macro to check if the server side of the Descriptor cluster is included
#define ZCL_USING_DESCRIPTOR_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_DESCRIPTOR_SERVER