diff --git a/CMakeLists.txt b/CMakeLists.txt
index 89f883b..720e7d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,6 +10,12 @@ find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
project(msc_dynamic)
+include(${ZEPHYR_NRF_MODULE_DIR}/samples/matter/common/cmake/zap_helpers.cmake)
+ncs_get_zap_parent_dir(ZAP_PARENT_DIR)
+
+# Override zap-generated directory.
+get_filename_component(CHIP_APP_ZAP_DIR ${ZAP_PARENT_DIR}/zap-generated REALPATH CACHE)
+
# Enable GNU STD support.
include(${ZEPHYR_CONNECTEDHOMEIP_MODULE_DIR}/config/nrfconnect/app/enable-gnu-std.cmake)
@@ -21,9 +27,6 @@ include(${ZEPHYR_NRF_MODULE_DIR}/samples/matter/common/cmake/source_common.cmake
# Include Data Model utils
include(${ZEPHYR_NRF_MODULE_DIR}/samples/matter/common/cmake/data_model.cmake)
-include(${ZEPHYR_NRF_MODULE_DIR}/samples/matter/common/cmake/zap_helpers.cmake)
-ncs_get_zap_parent_dir(ZAP_PARENT_DIR)
-
target_include_directories(app PRIVATE
src
${ZAP_PARENT_DIR}
@@ -31,8 +34,9 @@ target_include_directories(app PRIVATE
target_sources(app PRIVATE
src/app_task.cpp
+ src/zcl_callbacks.cpp
src/main.cpp
)
-ncs_configure_data_model()
+ncs_configure_data_model(EXTERNAL_CLUSTERS "MY_CLUSTER")
# NORDIC SDK APP END
diff --git a/src/default_zap/NewCluster.xml b/src/default_zap/NewCluster.xml
new file mode 100644
index 0000000..749b1f7
--- /dev/null
+++ b/src/default_zap/NewCluster.xml
@@ -0,0 +1,19 @@
+
+
+
+ General
+ MyCluster
+ 0xFFF1FC01
+ MY_CLUSTER
+ The cluster showcases a cluster manufacturer extensions
+
+ Change LED state
+
+ Attr1
+ Attr2
+
+
+ Event 1.
+
+
+
\ No newline at end of file
diff --git a/src/default_zap/template.zap b/src/default_zap/template.zap
index 8fea843..382f2a1 100644
--- a/src/default_zap/template.zap
+++ b/src/default_zap/template.zap
@@ -19,7 +19,7 @@
"package": [
{
"pathRelativity": "relativeToZap",
- "path": "../../../../../../modules/lib/matter/src/app/zap-templates/zcl/zcl.json",
+ "path": "zcl.json",
"type": "zcl-properties",
"category": "matter",
"version": 1,
@@ -27,7 +27,7 @@
},
{
"pathRelativity": "relativeToZap",
- "path": "../../../../../../modules/lib/matter/src/app/zap-templates/app-templates.json",
+ "path": "../../../../../source/v3.1.1/modules/lib/matter/src/app/zap-templates/app-templates.json",
"type": "gen-templates-json",
"category": "matter",
"version": "chip-v1"
@@ -2467,6 +2467,660 @@
]
}
]
+ },
+ {
+ "id": 2,
+ "name": "Anonymous Endpoint Type",
+ "deviceTypeRef": {
+ "code": 514,
+ "profileId": 259,
+ "label": "MA-windowcovering",
+ "name": "MA-windowcovering",
+ "deviceTypeOrder": 0
+ },
+ "deviceTypes": [
+ {
+ "code": 514,
+ "profileId": 259,
+ "label": "MA-windowcovering",
+ "name": "MA-windowcovering",
+ "deviceTypeOrder": 0
+ }
+ ],
+ "deviceVersions": [
+ 4
+ ],
+ "deviceIdentifiers": [
+ 514
+ ],
+ "deviceTypeName": "MA-windowcovering",
+ "deviceTypeCode": 514,
+ "deviceTypeProfileId": 259,
+ "clusters": [
+ {
+ "name": "Identify",
+ "code": 3,
+ "mfgCode": null,
+ "define": "IDENTIFY_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "commands": [
+ {
+ "name": "Identify",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "IdentifyTime",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "IdentifyType",
+ "code": 1,
+ "mfgCode": null,
+ "side": "server",
+ "type": "IdentifyTypeEnum",
+ "included": 1,
+ "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": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": null,
+ "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": null,
+ "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": null,
+ "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": "5",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Descriptor",
+ "code": 29,
+ "mfgCode": null,
+ "define": "DESCRIPTOR_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "attributes": [
+ {
+ "name": "DeviceTypeList",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": null,
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ServerList",
+ "code": 1,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": null,
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClientList",
+ "code": 2,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": null,
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "PartsList",
+ "code": 3,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": null,
+ "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": null,
+ "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": null,
+ "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": null,
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "FeatureMap",
+ "code": 65532,
+ "mfgCode": null,
+ "side": "server",
+ "type": "bitmap32",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": null,
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ClusterRevision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int16u",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": null,
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Window Covering",
+ "code": 258,
+ "mfgCode": null,
+ "define": "WINDOW_COVERING_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "commands": [
+ {
+ "name": "UpOrOpen",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "DownOrClose",
+ "code": 1,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "StopMotion",
+ "code": 2,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "Type",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "type": "Type",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ConfigStatus",
+ "code": 7,
+ "mfgCode": null,
+ "side": "server",
+ "type": "ConfigStatus",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x03",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "OperationalStatus",
+ "code": 10,
+ "mfgCode": null,
+ "side": "server",
+ "type": "OperationalStatus",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "EndProductType",
+ "code": 13,
+ "mfgCode": null,
+ "side": "server",
+ "type": "EndProductType",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "Mode",
+ "code": 23,
+ "mfgCode": null,
+ "side": "server",
+ "type": "Mode",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "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": null,
+ "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": null,
+ "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": null,
+ "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": "5",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "MyCluster",
+ "code": 4294048769,
+ "mfgCode": null,
+ "define": "MY_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "commands": [
+ {
+ "name": "MyCommand",
+ "code": 4293984256,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ }
+ ],
+ "attributes": [
+ {
+ "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": "Attr1",
+ "code": 4293984256,
+ "mfgCode": null,
+ "side": "server",
+ "type": "char_string",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "Attribute 1",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "Attr2",
+ "code": 4293984257,
+ "mfgCode": null,
+ "side": "server",
+ "type": "boolean",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ }
+ ],
+ "events": [
+ {
+ "name": "Event1",
+ "code": 4293984256,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1
+ }
+ ]
+ }
+ ]
}
],
"endpoints": [
@@ -2477,6 +3131,14 @@
"endpointId": 0,
"networkId": 0,
"parentEndpointIdentifier": null
+ },
+ {
+ "endpointTypeName": "Anonymous Endpoint Type",
+ "endpointTypeIndex": 1,
+ "profileId": 259,
+ "endpointId": 1,
+ "networkId": 0,
+ "parentEndpointIdentifier": null
}
]
}
\ No newline at end of file
diff --git a/src/default_zap/zcl.json b/src/default_zap/zcl.json
new file mode 100644
index 0000000..463d9a3
--- /dev/null
+++ b/src/default_zap/zcl.json
@@ -0,0 +1,896 @@
+{
+ "description": "Matter SDK ZCL data",
+ "category": "matter",
+ "version": 1,
+ "requiredFeatureLevel": 102,
+ "xmlRoot": [
+ "../../../../../source/v3.1.1/modules/lib/matter/src/app/zap-templates/zcl",
+ "../../../../../source/v3.1.1/modules/lib/matter/src/app/zap-templates/zcl/data-model/chip",
+ "."
+ ],
+ "_comment": "Ensure access-control-definitions.xml is first in xmlFile array",
+ "xmlFile": [
+ "access-control-definitions.xml",
+ "chip-types.xml",
+ "access-control-cluster.xml",
+ "account-login-cluster.xml",
+ "administrator-commissioning-cluster.xml",
+ "air-quality-cluster.xml",
+ "application-basic-cluster.xml",
+ "application-launcher-cluster.xml",
+ "audio-output-cluster.xml",
+ "ballast-configuration-cluster.xml",
+ "basic-information-cluster.xml",
+ "binding-cluster.xml",
+ "boolean-state-cluster.xml",
+ "boolean-state-configuration-cluster.xml",
+ "actions-cluster.xml",
+ "bridged-device-basic-information-cluster.xml",
+ "camera-av-settings-user-level-management-cluster.xml",
+ "camera-av-stream-management-cluster.xml",
+ "chime-cluster.xml",
+ "chip-ota.xml",
+ "channel-cluster.xml",
+ "closure-control-cluster.xml",
+ "closure-dimension-cluster.xml",
+ "clusters-extensions.xml",
+ "color-control-cluster.xml",
+ "commissioner-control-cluster.xml",
+ "commodity-metering-cluster.xml",
+ "commodity-price-cluster.xml",
+ "commodity-tariff-cluster.xml",
+ "concentration-measurement-cluster.xml",
+ "content-launch-cluster.xml",
+ "content-app-observer-cluster.xml",
+ "content-control-cluster.xml",
+ "descriptor-cluster.xml",
+ "device-energy-management-cluster.xml",
+ "device-energy-management-mode-cluster.xml",
+ "diagnostic-logs-cluster.xml",
+ "dishwasher-alarm-cluster.xml",
+ "dishwasher-mode-cluster.xml",
+ "microwave-oven-mode-cluster.xml",
+ "meter-identification-cluster.xml",
+ "door-lock-cluster.xml",
+ "ecosystem-information-cluster.xml",
+ "electrical-energy-measurement-cluster.xml",
+ "electrical-grid-conditions-cluster.xml",
+ "electrical-power-measurement-cluster.xml",
+ "energy-evse-cluster.xml",
+ "energy-evse-mode-cluster.xml",
+ "energy-preference-cluster.xml",
+ "ethernet-network-diagnostics-cluster.xml",
+ "fan-control-cluster.xml",
+ "fault-injection-cluster.xml",
+ "fixed-label-cluster.xml",
+ "flow-measurement-cluster.xml",
+ "general-commissioning-cluster.xml",
+ "general-diagnostics-cluster.xml",
+ "global-attributes.xml",
+ "global-bitmaps.xml",
+ "global-enums.xml",
+ "global-structs.xml",
+ "groups-cluster.xml",
+ "group-key-mgmt-cluster.xml",
+ "icd-management-cluster.xml",
+ "identify-cluster.xml",
+ "illuminance-measurement-cluster.xml",
+ "joint-fabric-datastore-cluster.xml",
+ "joint-fabric-administrator-cluster.xml",
+ "keypad-input-cluster.xml",
+ "laundry-washer-mode-cluster.xml",
+ "laundry-dryer-controls-cluster.xml",
+ "level-control-cluster.xml",
+ "localization-configuration-cluster.xml",
+ "low-power-cluster.xml",
+ "measurement-and-sensing.xml",
+ "media-input-cluster.xml",
+ "media-playback-cluster.xml",
+ "messages-cluster.xml",
+ "mode-base-cluster.xml",
+ "mode-select-cluster.xml",
+ "push-av-stream-transport-cluster.xml",
+ "semantic-tag-namespace-enums.xml",
+ "network-commissioning-cluster.xml",
+ "occupancy-sensing-cluster.xml",
+ "onoff-cluster.xml",
+ "operational-credentials-cluster.xml",
+ "operational-state-cluster.xml",
+ "operational-state-oven-cluster.xml",
+ "operational-state-rvc-cluster.xml",
+ "oven-mode-cluster.xml",
+ "power-topology-cluster.xml",
+ "pressure-measurement-cluster.xml",
+ "power-source-cluster.xml",
+ "power-source-configuration-cluster.xml",
+ "proxy-configuration-cluster.xml",
+ "proxy-discovery-cluster.xml",
+ "proxy-valid-cluster.xml",
+ "pump-configuration-and-control-cluster.xml",
+ "pwm-cluster.xml",
+ "refrigerator-and-temperature-controlled-cabinet-mode-cluster.xml",
+ "refrigerator-alarm.xml",
+ "relative-humidity-measurement-cluster.xml",
+ "rvc-clean-mode-cluster.xml",
+ "rvc-run-mode-cluster.xml",
+ "resource-monitoring-cluster.xml",
+ "scene.xml",
+ "service-area-cluster.xml",
+ "smoke-co-alarm-cluster.xml",
+ "software-diagnostics-cluster.xml",
+ "soil-measurement-cluster.xml",
+ "switch-cluster.xml",
+ "target-navigator-cluster.xml",
+ "temperature-control-cluster.xml",
+ "microwave-oven-control-cluster.xml",
+ "temperature-measurement-cluster.xml",
+ "test-cluster.xml",
+ "thermostat-cluster.xml",
+ "thermostat-user-interface-configuration-cluster.xml",
+ "thread-border-router-management-cluster.xml",
+ "thread-network-diagnostics-cluster.xml",
+ "thread-network-directory-cluster.xml",
+ "time-format-localization-cluster.xml",
+ "time-synchronization-cluster.xml",
+ "timer-cluster.xml",
+ "tls-certificate-management-cluster.xml",
+ "tls-client-management-cluster.xml",
+ "user-label-cluster.xml",
+ "unit-localization-cluster.xml",
+ "valve-configuration-and-control-cluster.xml",
+ "wake-on-lan-cluster.xml",
+ "washer-controls-cluster.xml",
+ "water-heater-management-cluster.xml",
+ "water-heater-mode-cluster.xml",
+ "webrtc-provider-cluster.xml",
+ "webrtc-requestor-cluster.xml",
+ "wifi-network-diagnostics-cluster.xml",
+ "wifi-network-management-cluster.xml",
+ "window-covering.xml",
+ "matter-devices.xml",
+ "sample-mei-cluster.xml",
+ "zone-management-cluster.xml",
+ "NewCluster.xml"
+ ],
+ "manufacturersXml": "../../../../../source/v3.1.1/modules/lib/matter/src/app/zap-templates/zcl/data-model/manufacturers.xml",
+ "options": {
+ "text": {
+ "defaultResponsePolicy": [
+ "Always",
+ "Conditional",
+ "Never"
+ ]
+ },
+ "bool": [
+ "commandDiscovery"
+ ]
+ },
+ "defaults": {
+ "text": {
+ "manufacturerCodes": "0x1002",
+ "defaultResponsePolicy": "always"
+ },
+ "bool": {
+ "commandDiscovery": true
+ }
+ },
+ "listsUseAttributeAccessInterface": true,
+ "attributeAccessInterfaceAttributes": {
+ "Access Control": [
+ "ClusterRevision",
+ "SubjectsPerAccessControlEntry",
+ "TargetsPerAccessControlEntry",
+ "AccessControlEntriesPerFabric",
+ "FeatureMap"
+ ],
+ "Administrator Commissioning": [
+ "ClusterRevision",
+ "WindowStatus",
+ "AdminFabricIndex",
+ "AdminVendorId"
+ ],
+ "Basic Information": [
+ "DataModelRevision",
+ "VendorName",
+ "VendorID",
+ "ProductName",
+ "ProductID",
+ "Location",
+ "HardwareVersion",
+ "HardwareVersionString",
+ "SoftwareVersion",
+ "SoftwareVersionString",
+ "ManufacturingDate",
+ "PartNumber",
+ "ProductURL",
+ "ProductLabel",
+ "SerialNumber",
+ "UniqueID",
+ "CapabilityMinima",
+ "ProductAppearance",
+ "SpecificationVersion",
+ "MaxPathsPerInvoke"
+ ],
+ "Bridged Device Basic Information": [
+ "ProductAppearance"
+ ],
+ "Chime": [
+ "SelectedChime",
+ "Enabled"
+ ],
+ "Closure Control": [
+ "CountdownTime",
+ "OverallCurrentState",
+ "OverallTargetState",
+ "FeatureMap",
+ "ClusterRevision"
+ ],
+ "Closure Dimension": [
+ "CurrentState",
+ "Target",
+ "UnitRange",
+ "LimitRange",
+ "FeatureMap",
+ "ClusterRevision"
+ ],
+ "Commodity Price": [
+ "TariffUnit",
+ "Currency",
+ "CurrentPrice",
+ "PriceForecast",
+ "FeatureMap"
+ ],
+ "Commodity Tariff": [
+ "TariffInfo",
+ "CurrentDay",
+ "NextDay",
+ "CurrentDayEntry",
+ "NextDayEntry"
+ ],
+ "Descriptor": [
+ "ClusterRevision",
+ "FeatureMap"
+ ],
+ "Device Energy Management": [
+ "ESAType",
+ "ESACanGenerate",
+ "ESAState",
+ "AbsMinPower",
+ "AbsMaxPower",
+ "PowerAdjustmentCapability",
+ "Forecast",
+ "OptOutState",
+ "FeatureMap"
+ ],
+ "Device Energy Management Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "Door Lock": [
+ "AliroReaderVerificationKey",
+ "AliroReaderGroupIdentifier",
+ "AliroReaderGroupSubIdentifier",
+ "AliroGroupResolvingKey",
+ "AliroBLEAdvertisingVersion",
+ "NumberOfAliroCredentialIssuerKeysSupported",
+ "NumberOfAliroEndpointKeysSupported"
+ ],
+ "Energy EVSE": [
+ "State",
+ "SupplyState",
+ "FaultState",
+ "ChargingEnabledUntil",
+ "DischargingEnabledUntil",
+ "CircuitCapacity",
+ "MinimumChargeCurrent",
+ "MaximumChargeCurrent",
+ "MaximumDischargeCurrent",
+ "UserMaximumChargeCurrent",
+ "RandomizationDelayWindow",
+ "NextChargeStartTime",
+ "NextChargeTargetTime",
+ "NextChargeRequiredEnergy",
+ "NextChargeTargetSoC",
+ "ApproximateEVEfficiency",
+ "StateOfCharge",
+ "BatteryCapacity",
+ "VehicleID",
+ "SessionID",
+ "SessionDuration",
+ "SessionEnergyCharged",
+ "SessionEnergyDischarged",
+ "FeatureMap"
+ ],
+ "Energy EVSE Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "Ethernet Network Diagnostics": [
+ "PHYRate",
+ "FullDuplex",
+ "CarrierDetect",
+ "TimeSinceReset",
+ "PacketRxCount",
+ "PacketTxCount",
+ "TxErrCount",
+ "CollisionCount",
+ "OverrunCount"
+ ],
+ "General Commissioning": [
+ "RegulatoryConfig",
+ "LocationCapability",
+ "BasicCommissioningInfo",
+ "SupportsConcurrentConnection"
+ ],
+ "General Diagnostics": [
+ "NetworkInterfaces",
+ "ActiveHardwareFaults",
+ "ActiveRadioFaults",
+ "ActiveNetworkFaults",
+ "RebootCount",
+ "UpTime",
+ "TotalOperationalHours",
+ "BootReason",
+ "FeatureMap",
+ "ClusterRevision"
+ ],
+ "Group Key Management": [
+ "ClusterRevision",
+ "MaxGroupsPerFabric",
+ "MaxGroupKeysPerFabric",
+ "FeatureMap"
+ ],
+ "ICD Management": [
+ "IdleModeDuration",
+ "ActiveModeDuration",
+ "ActiveModeThreshold",
+ "RegisteredClients",
+ "ICDCounter",
+ "ClientsSupportedPerFabric",
+ "MaximumCheckInBackOff",
+ "OperatingMode",
+ "FeatureMap"
+ ],
+ "Joint Fabric Datastore": [
+ "Status"
+ ],
+ "Meter Identification": [
+ "MeterType",
+ "PointOfDelivery",
+ "MeterSerialNumber",
+ "ProtocolVersion",
+ "PowerThreshold",
+ "FeatureMap"
+ ],
+ "Network Commissioning": [
+ "ClusterRevision",
+ "ConnectMaxTimeSeconds",
+ "FeatureMap",
+ "InterfaceEnabled",
+ "LastConnectErrorValue",
+ "LastNetworkID",
+ "LastNetworkingStatus",
+ "MaxNetworks",
+ "Networks",
+ "ScanMaxTimeSeconds",
+ "SupportedThreadFeatures",
+ "SupportedWiFiBands",
+ "ThreadVersion"
+ ],
+ "Occupancy Sensing": [
+ "HoldTimeLimits",
+ "HoldTime",
+ "PIROccupiedToUnoccupiedDelay",
+ "UltrasonicOccupiedToUnoccupiedDelay",
+ "PhysicalContactOccupiedToUnoccupiedDelay",
+ "FeatureMap"
+ ],
+ "Operational Credentials": [
+ "SupportedFabrics",
+ "CommissionedFabrics",
+ "CurrentFabricIndex"
+ ],
+ "Software Diagnostics": [
+ "ClusterRevision",
+ "CurrentHeapFree",
+ "CurrentHeapHighWatermark",
+ "CurrentHeapUsed",
+ "FeatureMap",
+ "ThreadMetrics"
+ ],
+ "Unit Testing": [
+ "struct_attr",
+ "nullable_struct",
+ "general_error_boolean",
+ "cluster_error_boolean",
+ "global_struct",
+ "nullable_global_struct"
+ ],
+ "Thread Border Router Management": [
+ "BorderRouterName",
+ "BorderAgentID",
+ "ThreadVersion",
+ "InterfaceEnabled",
+ "ActiveDatasetTimestamp",
+ "PendingDatasetTimestamp",
+ "FeatureMap"
+ ],
+ "Thread Network Diagnostics": [
+ "Channel",
+ "RoutingRole",
+ "NetworkName",
+ "PanId",
+ "ExtendedPanId",
+ "MeshLocalPrefix",
+ "OverrunCount",
+ "PartitionId",
+ "Weighting",
+ "DataVersion",
+ "StableDataVersion",
+ "LeaderRouterId",
+ "DetachedRoleCount",
+ "ChildRoleCount",
+ "RouterRoleCount",
+ "LeaderRoleCount",
+ "AttachAttemptCount",
+ "PartitionIdChangeCount",
+ "BetterPartitionAttachAttemptCount",
+ "ParentChangeCount",
+ "TxTotalCount",
+ "TxUnicastCount",
+ "TxBroadcastCount",
+ "TxAckRequestedCount",
+ "TxAckedCount",
+ "TxNoAckRequestedCount",
+ "TxDataCount",
+ "TxDataPollCount",
+ "TxBeaconCount",
+ "TxBeaconRequestCount",
+ "TxOtherCount",
+ "TxRetryCount",
+ "TxDirectMaxRetryExpiryCount",
+ "TxIndirectMaxRetryExpiryCount",
+ "TxErrCcaCount",
+ "TxErrAbortCount",
+ "TxErrBusyChannelCount",
+ "RxTotalCount",
+ "RxUnicastCount",
+ "RxBroadcastCount",
+ "RxDataCount",
+ "RxDataPollCount",
+ "RxBeaconCount",
+ "RxBeaconRequestCount",
+ "RxOtherCount",
+ "RxAddressFilteredCount",
+ "RxDestAddrFilteredCount",
+ "RxDuplicatedCount",
+ "RxErrNoFrameCount",
+ "RxErrUnknownNeighborCount",
+ "RxErrInvalidSrcAddrCount",
+ "RxErrSecCount",
+ "RxErrFcsCount",
+ "RxErrOtherCount",
+ "ActiveTimestamp",
+ "PendingTimestamp",
+ "Delay",
+ "SecurityPolicy",
+ "ChannelPage0Mask",
+ "OperationalDatasetComponents",
+ "ExtAddress",
+ "Rloc16"
+ ],
+ "Wi-Fi Network Diagnostics": [
+ "BSSID",
+ "SecurityType",
+ "WiFiVersion",
+ "ChannelNumber",
+ "RSSI",
+ "BeaconLostCount",
+ "BeaconRxCount",
+ "PacketMulticastRxCount",
+ "PacketMulticastTxCount",
+ "PacketUnicastRxCount",
+ "PacketUnicastTxCount",
+ "CurrentMaxRate",
+ "OverrunCount"
+ ],
+ "Channel": [
+ "Lineup",
+ "CurrentChannel"
+ ],
+ "Media Playback": [
+ "SampledPosition",
+ "ActiveAudioTrack",
+ "ActiveTextTrack"
+ ],
+ "Application Launcher": [
+ "CurrentApp"
+ ],
+ "Application Basic": [
+ "Application"
+ ],
+ "Time Synchronization": [
+ "TrustedTimeSource",
+ "DefaultNTP",
+ "TimeZone",
+ "DSTOffset",
+ "UTCTime",
+ "LocalTime",
+ "Granularity",
+ "TimeZoneListMaxSize",
+ "DSTOffsetListMaxSize"
+ ],
+ "Temperature Control": [
+ "SupportedTemperatureLevels"
+ ],
+ "Dishwasher Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "Microwave Oven Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "Microwave Oven Control": [
+ "CookTime",
+ "MaxCookTime",
+ "PowerSetting",
+ "MinPower",
+ "MaxPower",
+ "PowerStep",
+ "SupportedWatts",
+ "SelectedWattIndex",
+ "WattRating",
+ "FeatureMap"
+ ],
+ "Laundry Washer Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "Refrigerator And Temperature Controlled Cabinet Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "RVC Clean Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "RVC Run Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "Operational State": [
+ "OperationalState",
+ "OperationalError",
+ "CurrentPhase",
+ "CountdownTime"
+ ],
+ "RVC Operational State": [
+ "OperationalState",
+ "OperationalError",
+ "CurrentPhase",
+ "CountdownTime"
+ ],
+ "Oven Cavity Operational State": [
+ "OperationalState",
+ "OperationalError",
+ "CurrentPhase",
+ "CountdownTime"
+ ],
+ "Activated Carbon Filter Monitoring": [
+ "Condition",
+ "DegradationDirection",
+ "ChangeIndication",
+ "InPlaceIndicator",
+ "LastChangedTime",
+ "ReplacementProductList",
+ "FeatureMap"
+ ],
+ "HEPA Filter Monitoring": [
+ "Condition",
+ "DegradationDirection",
+ "ChangeIndication",
+ "InPlaceIndicator",
+ "LastChangedTime",
+ "ReplacementProductList",
+ "FeatureMap"
+ ],
+ "Carbon Monoxide Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "Carbon Dioxide Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "Nitrogen Dioxide Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "Ozone Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "PM2.5 Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "Formaldehyde Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "PM1 Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "PM10 Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "Total Volatile Organic Compounds Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "Radon Concentration Measurement": [
+ "MeasuredValue",
+ "MinMeasuredValue",
+ "MaxMeasuredValue",
+ "PeakMeasuredValue",
+ "PeakMeasuredValueWindow",
+ "AverageMeasuredValue",
+ "AverageMeasuredValueWindow",
+ "Uncertainty",
+ "MeasurementUnit",
+ "MeasurementMedium",
+ "LevelValue",
+ "FeatureMap"
+ ],
+ "Air Quality": [
+ "AirQuality",
+ "FeatureMap"
+ ],
+ "Electrical Energy Measurement": [
+ "Accuracy",
+ "CumulativeEnergyImported",
+ "CumulativeEnergyExported",
+ "PeriodicEnergyImported",
+ "PeriodicEnergyExported",
+ "CumulativeEnergyReset",
+ "FeatureMap"
+ ],
+ "Electrical Grid Conditions": [
+ "LocalGenerationAvailable",
+ "CurrentConditions",
+ "ForecastConditions",
+ "FeatureMap"
+ ],
+ "Electrical Power Measurement": [
+ "PowerMode",
+ "NumberOfMeasurementTypes",
+ "Accuracy",
+ "Ranges",
+ "Voltage",
+ "ActiveCurrent",
+ "ReactiveCurrent",
+ "ApparentCurrent",
+ "ActivePower",
+ "ReactivePower",
+ "ApparentPower",
+ "RMSVoltage",
+ "RMSCurrent",
+ "RMSPower",
+ "Frequency",
+ "HarmonicCurrents",
+ "HarmonicPhases",
+ "PowerFactor",
+ "NeutralCurrent",
+ "FeatureMap"
+ ],
+ "Power Topology": [
+ "FeatureMap"
+ ],
+ "Valve Configuration and Control": [
+ "RemainingDuration"
+ ],
+ "Boolean State Configuration": [
+ "CurrentSensitivityLevel"
+ ],
+ "Water Heater Management": [
+ "HeaterTypes",
+ "HeatDemand",
+ "TankVolume",
+ "EstimatedHeatRequired",
+ "TankPercentage",
+ "BoostState",
+ "FeatureMap",
+ "ClusterRevision"
+ ],
+ "Water Heater Mode": [
+ "SupportedModes",
+ "CurrentMode",
+ "FeatureMap"
+ ],
+ "Wi-Fi Network Management": [
+ "SSID",
+ "PassphraseSurrogate"
+ ],
+ "Thread Network Directory": [
+ "PreferredExtendedPanID",
+ "ThreadNetworks",
+ "ThreadNetworkTableSize"
+ ],
+ "Service Area": [
+ "CurrentArea",
+ "EstimatedEndTime",
+ "FeatureMap"
+ ],
+ "Camera AV Stream Management": [
+ "VideoSensorParams",
+ "MinViewport",
+ "MicrophoneCapabilities",
+ "SpeakerCapabilities",
+ "Viewport",
+ "MaxConcurrentEncoders",
+ "MaxEncodedPixelRate",
+ "NightVisionUsesInfrared",
+ "MaxContentBufferSize",
+ "TwoWayTalkSupport",
+ "MaxNetworkBandwidth",
+ "CurrentFrameRate",
+ "HDRModeEnabled",
+ "SoftRecordingPrivacyModeEnabled",
+ "SoftLivestreamPrivacyModeEnabled",
+ "HardPrivacyModeOn",
+ "NightVision",
+ "NightVisionIllum",
+ "SpeakerMuted",
+ "SpeakerVolumeLevel",
+ "SpeakerMaxLevel",
+ "SpeakerMinLevel",
+ "MicrophoneMuted",
+ "MicrophoneVolumeLevel",
+ "MicrophoneMaxLevel",
+ "MicrophoneMinLevel",
+ "MicrophoneAGCEnabled",
+ "ImageRotation",
+ "ImageFlipHorizontal",
+ "ImageFlipVertical",
+ "LocalVideoRecordingEnabled",
+ "LocalSnapshotRecordingEnabled",
+ "StatusLightEnabled",
+ "StatusLightBrightness",
+ "FeatureMap"
+ ],
+ "Camera AV Settings User Level Management": [
+ "MPTZPosition"
+ ],
+ "Soil Measurement": [
+ "SoilMoistureMeasurementLimits",
+ "SoilMoistureMeasuredValue",
+ "ClusterRevision"
+ ],
+ "Unit Localization": [
+ "TemperatureUnit"
+ ],
+ "Zone Management": [
+ "TwoDCartesianMax"
+ ]
+ },
+ "mandatoryDeviceTypes": "0x0016",
+ "defaultReportingPolicy": "mandatory",
+ "ZCLDataTypes": [
+ "ARRAY",
+ "BITMAP",
+ "ENUM",
+ "NUMBER",
+ "STRING",
+ "STRUCT"
+ ],
+ "fabricHandling": {
+ "automaticallyCreateFields": true,
+ "indexFieldId": 254,
+ "indexFieldName": "FabricIndex",
+ "indexType": "fabric_idx"
+ },
+ "uiOptions": {
+ "showProfileId": false
+ }
+}
\ No newline at end of file
diff --git a/src/zcl_callbacks.cpp b/src/zcl_callbacks.cpp
new file mode 100644
index 0000000..724a894
--- /dev/null
+++ b/src/zcl_callbacks.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2025 Nordic Semiconductor ASA
+ *
+ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
+ */
+
+#include
+
+#include "app_task.h"
+#include "board/board.h"
+
+#include
+#include
+#include
+#include
+
+using namespace ::chip;
+using namespace ::chip::app;
+using namespace ::chip::app::Clusters;
+
+void MatterPostAttributeChangeCallback(const ConcreteAttributePath &attributePath, uint8_t type,
+ uint16_t size, uint8_t *value)
+{
+ /* Intentionally empty */
+}
+
+void MatterMyClusterPluginServerInitCallback()
+{
+ // TODO: Initialization logic for your cluster
+}
+
+void emberAfMyClusterClusterInitCallback(EndpointId endpoint)
+{
+ // TODO: Initialization logic for your cluster
+}
+
+bool emberAfMyClusterClusterMyCommandCallback(
+ chip::app::CommandHandler *commandObj,
+ const chip::app::ConcreteCommandPath &commandPath,
+ const chip::app::Clusters::MyCluster::Commands::MyCommand::DecodableType
+ &commandData)
+{
+ return true;
+}