diff --git a/silabs_examples/template/efr32/BUILD.gn b/silabs_examples/template/efr32/BUILD.gn
index 5992723aae2303..2f7794a633b0e4 100644
--- a/silabs_examples/template/efr32/BUILD.gn
+++ b/silabs_examples/template/efr32/BUILD.gn
@@ -176,7 +176,7 @@ efr32_executable("template_app") {
deps = [
":sdk",
- "${chip_root}/examples/lighting-app/lighting-common",
+ "${chip_root}/silabs_examples/template/template_DataModel_config",
"${chip_root}/src/lib",
"${chip_root}/src/setup_payload",
]
diff --git a/silabs_examples/template/efr32/HOW_TO_CREATE_A_CUSTOM_APP.md b/silabs_examples/template/efr32/HOW_TO_CREATE_A_CUSTOM_APP.md
new file mode 100644
index 00000000000000..00c452b77c8b7f
--- /dev/null
+++ b/silabs_examples/template/efr32/HOW_TO_CREATE_A_CUSTOM_APP.md
@@ -0,0 +1,229 @@
+# How to Create an EFR32 Matter Application
+
+
+
+- [How to Create an EFR32 Matter Application](#how-to-create-an-efr32-matter-application)
+ - [Introduction](#introduction)
+ - [Create your app](#create-your-app)
+ - [Create a new directory](#create-a-new-directory)
+ - [Modify the application](#modify-the-application)
+ - [Using ZAP to configure clusters](#using-zap-to-configure-clusters)
+ - [Create a Data Model](#create-a-data-model)
+ - [Cluster Configuration and Generation](#cluster-configuration-and-generation)
+ - [Modifying the GN Build files](#modifying-the-gn-build-files)
+ - [Modifying the source code](#modifying-the-source-code)
+ - [Running your app](#running-your-app)
+
+
+
+## Introduction
+
+This guide will walk you through the process of creating your own application,
+starting from the [template application][1].
+
+Please read the template application’s [README.md file](README.md) for a summary
+about the functioning of a Matter EFR32 application.
+
+## Create your app
+
+Follow the steps below to create a new application named **your_app**.
+
+### Create a new directory
+
+1. Copy the [template folder][1], paste it in the [silabs_examples][2]
+ directory. Rename the folder as **your_app**.
+
+### Modify the application
+
+Before modifying the source code, follow the steps below to make sure that
+**your_app** is a fully functional custom application.
+
+#### Using ZAP to configure clusters
+
+_Clusters_ determine which commands **your_app** can receive. To configure
+_clusters_ for your app, you need a data model. For more information about
+clusters, see [README.md](README.md).
+
+##### Create a Data Model
+
+Before we can modify the cluster configuration, we need to create a new data
+model configuration for **your_app**.
+
+If you followed step 1, in **your_app** folder, you should have two directories.
+One of them should have a name similar to “template_DataModel_config”. We will
+modify this folder to create a custom Data Model configuration named
+**your_data_model_config**.
+
+2. Rename the folder “template_DataModel_config” to
+ “**your_data_model_config**”.
+
+Inside **your_data_model_config**, you will find a file named “sl_template.zap”.
+This file contains your cluster configuration.
+
+3. Rename “sl_template.zap” to “**your_app.zap**”.
+
+Inside **your_data_model_config** you should also find a BUILD.gn file. This
+file needs to be modified as well, but we will come back to it later.
+
+When you feed “**your_app**.zap” to Zaptool, ZAP will translate the ".zap" file
+into a C implementation. This process is called _Generation_. We need to create
+a directory for **your_app** where Zap tool will output the C files. This
+directory needs to be located inside [zzz_generated][3].
+
+4. Naviguate to [zzz_generated][3]. Inside, create a new directory named
+ “**your_app**”. Inside the folder you just created, create another folder
+ named “zap-generated”.
+
+We want Zaptool to generate the C files in the directory you just created,
+namely: [zzz_generated][3]/**your_app**/zap-generated. To do so, go back to
+**your_data_model_config** and make the following modifications.
+
+5. Naviguate to the file “BUILD.gn” located in **your_data_model_config**.
+ Inside, change the following lines of code:
+
+```gn
+ # Change this line of code
+ chip_data_model("sl_template") {
+ # to this:
+ chip_data_model("your_data_model_config") {
+```
+
+```gn
+ # Change the following line of code
+ zap_file = "sl_template.zap"
+ # to:
+ zap_file = "your_app.zap"
+```
+
+```gn
+ # Finally, modify the following line
+ zap_pregenerated_dir = "${chip_root}/zzz_generated/sl_template/zap-generated"
+ # to become:
+ zap_pregenerated_dir = "${chip_root}/zzz_generated/your_app/zap-generated"
+```
+
+Now, we have our own configurable data model. We can now modify the cluster
+configuration and _Generate_ with ZAP.
+
+##### Cluster Configuration and Generation
+
+Follow the steps below to modify the cluster configuration stored in
+“**your_app**.zap”. To do that, you need to run ZAP. See [this guide][4] to
+learn how to run zap (it can take some time). Once you have Zap up and running,
+proceed with the steps below:
+
+6. Open a terminal. Navigate to the [root directory][5] of your Matter
+ repository.
+
+7. Run ZapTool. Enter this bash command in your terminal:
+
+ ```bash
+ # While in the root directory, run this command:
+ ./scripts/tools/zap/run_zaptool.sh
+ ```
+
+An application running on “Electron” should appear on your screen after a
+moment.
+
+8. Now open your file.zap in the ZapTool. For Mac, follow these steps
+
+ 1. Go to the App Menus (top bar).
+ 2. Select `Electron > Open File...`
+ 3. Modify the cluster configuration using the UI of Zaptool.
+ 4. When finished modifying the file, select `Electron > Save`
+ 5. Close Zaptool.
+
+9. To _Generate_ the corresponding C files, execute the following command:
+
+ ```bash
+ # While in the root directory, run this command:
+ ./scripts/tools/zap/generate.py silabs_examples/your_app/your_data_model_config/your_app.zap -o zzz_generated/your_app/zap-generated
+ # The first argument is the path to the "generate script". It should not be changed.
+ # The second argument is the path to **your_app**.zap. Zap will use it to *Generate*.
+ # The third argument "-o" should not be modified.
+ # The last argument is the directory where the C files will be *Generated*.
+ ```
+
+If everything worked as expected, you should now have a file named
+"**your_app**.matter" inside the folder **your_data_model_config**.
+
+Finally, there is a file which ZAP does not generate. It is called
+"af-gen-event.h" and it is necessary to run a Matter application.
+
+10. Navigate to one of the zzz-generated output directory (one example is the
+ [lighting-app output directory]). Copy the "af-gen-event.h" file and paste
+ it inside "zzz-generated/**your_app**/zap-generated". This step needs to be
+ done only once for each new app.
+
+Now, you have successfully modified and generated a Matter cluster
+configuration.
+
+**Important** The process is not finished! You must update the GN files to point
+to **your_data_model_config**. Read the section [Modifying the GN Build
+files][6] to learn more.
+
+#### Modifying the GN Build files
+
+You need to add the **your_data_model_config** to the build configuration so
+that the compiler will compile the C files you generated in the previous steps.
+
+To do so, you need to modify [BUILD.gn](BUILD.gn) which is the main build file
+of your application.
+
+11. Naviguate to the main [BUILD.gn](BUILD.gn) file, perform this modification:
+
+ ```gn
+ # Find the "efr32_executable" section of the file. Inside it you will find a sub-section called
+ # deps = [
+ # Here, there is list of dependencies listed.
+ # Remove any DataModel dependencies from this section. They will look like this:
+ # "${chip_root}/silabs_examples/template/template_DataModel_config",
+ # or like this:
+ # "${chip_root}/examples/lighting-app/lighting-common",
+ # Remove them all, we want our app to use your_data_model_config only.
+ # Now, add your_data_model_config as a dependency.
+ # After you are done, "deps" should look something like this:
+ deps = [
+ ":sdk",
+ "${chip_root}/silabs_examples/your_app/your_data_model_config",
+ "${chip_root}/src/lib",
+ "${chip_root}/src/setup_payload",
+ ]
+ ```
+
+Now, you have a configurable custom Matter application. You can proceed to
+modifying the source code of **your_app**.
+
+#### Modifying the source code
+
+As mentioned in the [README](README.md) of this app, Matter commands are
+received in the function [MatterPostAttributeChangeCallback()][7]. You can
+modify this function to forward Matter commands to a custom function of your
+choice and handle them there. Refer to [Color Lighting][8] to see how this can
+be done.
+
+Note: If you add .cpp files to **your_app**, modify [BUILD.gn](BUILD.gn) to take
+account of it. To do so, navigate to the section "efr32_executable" in the file,
+locate the "sources" subsection and add your new "file.cpp" there.
+
+Note: Both in the source files and in the [BUILD.gn](BUILD.gn), you might have
+to rename certain variables. Simply renaming any instance of "sl_template" or
+"template" to "**your_app**" should be enough.
+
+### Running your app
+
+Color Light app's [README][9] contains useful information about building,
+flashing and running a Matter EFR32 app. A more complete guide can be found in
+Lighting-app's [README](../../../examples/lighting-app/efr32/README.md).
+
+###### Last modified August 5th, 2022.
+
+[1]: ../../template/
+[2]: ../../../silabs_examples/
+[3]: ../../../zzz_generated/
+[4]: ../../../third_party/zap/repo/README.md
+[5]: ../../../
+[6]: #Modifying-the-GN-Build-files
+[7]: src/ZclCallbacks.cpp
+[8]: ../../sl-newLight/efr32/src/
+[9]: ../../sl-newLight/efr32/README.md
diff --git a/silabs_examples/template/efr32/README.md b/silabs_examples/template/efr32/README.md
index f2fc205daae3f5..0ab71bc3c124ff 100644
--- a/silabs_examples/template/efr32/README.md
+++ b/silabs_examples/template/efr32/README.md
@@ -1,420 +1,103 @@
-#Matter EFR32 Template Example
-
-An example template.
+# Matter EFR32 Template App
-// TODO UPDATE ME
-
-- [CHIP EFR32 Lighting Example](#chip-efr32-lighting-example)
+- [Matter EFR32 Template App](#matter-efr32-template-app)
- [Introduction](#introduction)
- - [Building](#building)
- - [Note](#note)
- - [Flashing the Application](#flashing-the-application)
- - [Viewing Logging Output](#viewing-logging-output)
- - [Running the Complete Example](#running-the-complete-example)
- - [Notes](#notes)
- - [Running RPC console](#running-rpc-console)
- - [Device Tracing](#device-tracing)
- - [Memory settings](#memory-settings)
- - [OTA Software Update](#ota-software-update)
+ - [Overview of the application](#overview-of-the-application)
+ - [Starting point](#starting-point)
+ - [Receiving Matter commands](#receiving-matter-commands)
+ - [Using Matter with Clusters](#using-matter-with-clusters)
+ - [Using ZAP to configure clusters](#using-zap-to-configure-clusters)
+ - [The GN Build system](#the-gn-build-system)
+ - [Running the application](#running-the-application)
-
-
## Introduction
-The EFR32 lighting example provides a baseline demonstration of a Light control
-device, built using CHIP and the Silicon Labs gecko SDK. It can be controlled by
-a Chip controller over Openthread network..
-
-The EFR32 device can be commissioned over Bluetooth Low Energy where the device
-and the Chip controller will exchange security information with the Rendez-vous
-procedure. Thread Network credentials are then provided to the EFR32 device
-which will then join the network.
-
-The LCD on the Silabs WSTK shows a QR Code containing the needed commissioning
-information for the BLE connection and starting the Rendez-vous procedure.
-
-The lighting example is intended to serve both as a means to explore the
-workings of CHIP as well as a template for creating real products based on the
-Silicon Labs platform.
-
-
-
-## Building
-
-- Download the
- [Simplicity Commander](https://www.silabs.com/mcu/programming-options)
- command line tool, and ensure that `commander` is your shell search path.
- (For Mac OS X, `commander` is located inside
- `Commander.app/Contents/MacOS/`.)
-
-- Download and install a suitable ARM gcc tool chain:
- [GNU Arm Embedded Toolchain 9-2019-q4-major](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
-
-- Install some additional tools(likely already present for CHIP developers):
-
-#Linux `sudo apt-get install git libwebkitgtk-1.0-0 ninja-build`
-
-#Mac OS X `brew install ninja`
-
-- Supported hardware:
-
- MG12 boards:
-
- - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm
- - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm
- - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm
- - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm,
- 915MHz@19dBm
- - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm
-
- MG21 boards: Currently not supported due to RAM limitation.
-
- - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm
-
- MG24 boards :
-
- - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm
- - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm
-
-* Build the example application:
-
- ```
- cd ~/connectedhomeip
- ./scripts/examples/gn_efr32_example.sh ./SILABS_examples/template/efr32/ ./out/template BRD4161A
- ```
-
-- To delete generated executable, libraries and object files use:
-
- ```
- $ cd ~/connectedhomeip
- $ rm -rf ./out/
- ```
-
- OR use GN/Ninja directly
-
- ```
- $ cd ~/connectedhomeip/SILABS_examples/template/efr32
- $ git submodule update --init
- $ source third_party/connectedhomeip/scripts/activate.sh
- $ export EFR32_BOARD=BRD4161A
- $ gn gen out/debug
- $ ninja -C out/debug
- ```
-
-- To delete generated executable, libraries and object files use:
-
- ```
- $ cd ~/connectedhomeip/SILABS_examples/template/efr32
- $ rm -rf out/
- ```
-
-* Build the example as Sleepy End Device (SED)
-
- ```
- $ ./scripts/examples/gn_efr32_example.sh ./SILABS_examples/template/efr32/ ./out/template_SED BRD4161A --sed
- ```
-
- or use gn as previously mentioned but adding the following arguments:
-
- ```
- $ gn gen out/debug '--args=efr32_board="BRD4161A" enable_sleepy_device=true chip_openthread_ftd=false'
- ```
-
-* Build the example with pigweed RPC
-
- ```
- $ ./scripts/examples/gn_efr32_example.sh SILABS_examples/template/efr32/ out/template_app_rpc BRD4161A 'import("//with_pw_rpc.gni")'
- ```
-
- or use GN/Ninja Directly
-
- ```
- $ cd ~/connectedhomeip/SILABS_examples/template/efr32
- $ git submodule update --init
- $ source third_party/connectedhomeip/scripts/activate.sh
- $ export EFR32_BOARD=BRD4161A
- $ gn gen out/debug --args='import("//with_pw_rpc.gni")'
- $ ninja -C out/debug
- ```
-
- [Running Pigweed RPC console](#running-pigweed-rpc-console)
-
-For more build options, help is provided when running the build script without
-arguments
-
- ```
- ./scripts/examples/gn_efr32_example.sh
- ```
-
-
-
-## Flashing the Application
-
-- On the command line:
-
- ```
- $ cd ~/connectedhomeip/SILABS_examples/template/efr32
- $ python3 out/debug/chip-efr32-lighting-example.flash.py
- ```
-
-- Or with the Ozone debugger, just load the .out file.
-
-
-
-## Viewing Logging Output
-
-The example application is built to use the SEGGER Real Time Transfer (RTT)
-facility for log output. RTT is a feature built-in to the J-Link Interface MCU
-on the WSTK development board. It allows bi-directional communication with an
-embedded application without the need for a dedicated UART.
-
-Using the RTT facility requires downloading and installing the _SEGGER J-Link
-Software and Documentation Pack_
-([web site](https://www.segger.com/downloads/jlink#J-LinkSoftwareAndDocumentationPack)).
-
-Alternatively, SEGGER Ozone J-Link debugger can be used to view RTT logs too
-after flashing the .out file.
-
-- Download the J-Link installer by navigating to the appropriate URL and
- agreeing to the license agreement.
-
-- [JLink_Linux_x86_64.deb](https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb)
-- [JLink_MacOSX.pkg](https://www.segger.com/downloads/jlink/JLink_MacOSX.pkg)
-
-* Install the J-Link software
-
- ```
- $ cd ~/Downloads
- $ sudo dpkg -i JLink_Linux_V*_x86_64.deb
- ```
-
-* In Linux, grant the logged in user the ability to talk to the development
- hardware via the linux tty device (/dev/ttyACMx) by adding them to the
- dialout group.
-
- ```
- $ sudo usermod -a -G dialout ${USER}
- ```
-
-Once the above is complete, log output can be viewed using the JLinkExe tool in
-combination with JLinkRTTClient as follows:
-
-- Run the JLinkExe tool with arguments to autoconnect to the WSTK board:
-
- For MG12 use:
-
- ```
- $ JLinkExe -device EFR32MG12PXXXF1024 -if JTAG -speed 4000 -autoconnect 1
- ```
-
- For MG21 use:
-
- ```
- $ JLinkExe -device EFR32MG21AXXXF1024 -if SWD -speed 4000 -autoconnect 1
- ```
-
-- In a second terminal, run the JLinkRTTClient to view logs:
-
- ```
- $ JLinkRTTClient
- ```
-
-
-
-## Running the Complete Example
-
-- It is assumed here that you already have an OpenThread border router
- configured and running. If not see the following guide
- [Openthread_border_router](https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/openthread_border_router_pi.md)
- for more information on how to setup a border router on a raspberryPi.
-
- Take note that the RCP code is available directly through
- [Simplicity Studio 5](https://www.silabs.com/products/development-tools/software/simplicity-studio/simplicity-studio-5)
- under File->New->Project Wizard->Examples->Thread : ot-rcp
-
-- User interface : **LCD** The LCD on Silabs WSTK shows a QR Code. This QR
- Code is be scanned by the CHIP Tool app For the Rendez-vous procedure over
- BLE
-
- * On devices that do not have or support the LCD Display like the BRD4166A Thunderboard Sense 2,
- a URL can be found in the RTT logs.
-
- [SVR] Copy/paste the below URL in a browser to see the QR Code:
- [SVR] https://dhrishi.github.io/connectedhomeip/qrcode.html?data=CH%3AI34NM%20-00%200C9SS0
-
- **LED 0** shows the overall state of the device and its connectivity. The
- following states are possible:
-
- - _Short Flash On (50 ms on/950 ms off)_ ; The device is in the
- unprovisioned (unpaired) state and is waiting for a commissioning
- application to connect.
-
- - _Rapid Even Flashing_ ; (100 ms on/100 ms off)_ — The device is in the
- unprovisioned state and a commissioning application is connected through
- Bluetooth LE.
-
- - _Short Flash Off_ ; (950ms on/50ms off)_ — The device is fully
- provisioned, but does not yet have full Thread network or service
- connectivity.
-
- - _Solid On_ ; The device is fully provisioned and has full Thread
- network and service connectivity.
-
- **LED 1** Simulates the Light The following states are possible:
-
- - _Solid On_ ; Light is on
- - _Off_ ; Light is off
-
- **Push Button 0**
-
- - _Press and Release_ : Start, or restart, BLE advertisement in fast mode. It will advertise in this mode
- for 30 seconds. The device will then switch to a slower interval advertisement.
- After 15 minutes, the advertisement stops.
-
- - _Pressed and hold for 6 s_ : Initiates the factory reset of the device.
- Releasing the button within the 6-second window cancels the factory reset
- procedure. **LEDs** blink in unison when the factory reset procedure is
- initiated.
-
- **Push Button 1** Toggles the light state On/Off
-
-* You can provision and control the Chip device using the python controller,
- Chip tool standalone, Android or iOS app
-
-* You can provision and control the Chip device using the python controller,
- Chip tool standalone, Android or iOS app
-
- [CHIPTool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md)
-
- Here is an example with the CHIPTool:
-
- ```
- chip-tool pairing ble-thread 1 hex: 20202021 3840
-
- chip-tool onoff on 1 1
- ```
-
-### Notes
-
-- Depending on your network settings your router might not provide native ipv6
- addresses to your devices (Border router / PC). If this is the case, you
- need to add a static ipv6 addresses on both device and then an ipv6 route to
- the border router on your PC
-
-#On Border Router: `sudo ip addr add dev 2002::2/64`
-
-#On PC(Linux): `sudo ip addr add dev 2002::1/64`
-
-#Add Ipv6 route on PC(Linux)
-`sudo ip route add /64 via 2002::2`
-
-
-
-## Running RPC console
-
-- As part of building the example with RPCs enabled the chip_rpc python
- interactive console is installed into your venv. The python wheel files are
- also created in the output folder: out/debug/chip_rpc_console_wheels. To
- install the wheel files without rebuilding:
- `pip3 install out/debug/chip_rpc_console_wheels/*.whl`
-
-- To use the chip-rpc console after it has been installed run:
- `chip-console --device /dev/tty. -b 115200 -o //pw_log.out`
-
-- Then you can simulate a button press or release using the following command
- where : idx = 0 or 1 for Button PB0 or PB1 action = 0 for PRESSED, 1 for
- RELEASE Test toggling the LED with
- `rpcs.chip.rpc.Button.Event(idx=1, pushed=True)`
-
-- You can also Get and Set the light directly using the RPCs:
- `rpcs.chip.rpc.Lighting.Get()`
-
- `rpcs.chip.rpc.Lighting.Set(on=True, level=128, color=protos.chip.rpc.LightingColor(hue=5, saturation=5))`
-
-## Device Tracing
-
-Device tracing is available to analyze the device performance. To turn on
-tracing, build with RPC enabled. See Build the example with pigweed RPC.
+This is a template application. It is a good starting point to build a custom
+app.
-Obtain tracing json file.
+Find below more information about _how a Matter application works_. See
+[How to Create a custom application guide](HOW_TO_CREATE_A_CUSTOM_APP.md) for
+more information about building your own application starting from the template
+app.
-```
- $ ./{PIGWEED_REPO}/pw_trace_tokenized/py/pw_trace_tokenized/get_trace.py -d {PORT} -o {OUTPUT_FILE} \
- -t {ELF_FILE} {PIGWEED_REPO}/pw_trace_tokenized/pw_trace_protos/trace_rpc.proto
-```
+## Overview of the application
-## Memory settings
+### Starting point
-While most of the RAM usage in CHIP is static, allowing easier debugging and
-optimization with symbols analysis, we still need some HEAP for the crypto and
-OpenThread. Size of the HEAP can be modified by changing the value of the
-`configTOTAL_HEAP_SIZE` define inside of the FreeRTOSConfig.h file of this
-example. Please take note that a HEAP size smaller than 13k can and will cause a
-Mbedtls failure during the BLE rendez-vous or CASE session
+The program starts in [the main() function](src/main.cpp). However, the
+application's behaviour is mainly defined in the function
+[AppTaskMain()](src/AppTask.cpp). AppTaskMain() listens to incoming _events_ and
+sends them to the corresponding _handler_.
-To track memory usage you can set `enable_heap_monitoring = true` either in the
-BUILD.gn file or pass it as a build argument to gn. This will print on the RTT
-console the RAM usage of each individual task and the number of Memory
-allocation and Free. While this is not extensive monitoring you're welcome to
-modify `examples/platform/efr32/MemMonitoring.cpp` to add your own memory
-tracking code inside the `trackAlloc` and `trackFree` function
+### Receiving Matter commands
-## OTA Software Update
+All Matter commands reach the application through the intermediate of the
+function [MatterPostAttributeChangeCallback()](src/ZclCallbacks.cpp). Modify
+this function to forward the commands it receives to a _function_ of your
+choosing. This _function_ should implement the behavior you desire in response
+to these commands.
-For the description of Software Update process with EFR32 example applications
-see
-[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md)
+### Using Matter with Clusters
-## Group Communication (Multicast)
+In Matter, commands can only be issued by using a **cluster**. A **cluster** is
+a set of _attributes_ and _commands_ which are grouped together under a relevant
+theme.
-With this lighting example you can also use group communication to send Lighting
-commands to multiples devices at once. Please refer to the
-[chip-tool documentation](../../chip-tool/README.md) _Configuring the server
-side for Group Commands_ and _Using the Client to Send Group (Multicast) Matter
-Commands_
+_Attributes_ store values (think of them as variables). _Commands_ are used to
+modify the value of _attributes_.
-## Building options
+For example, the "On/Off" **cluster** has an _attribute_ named "OnOff" of type
+boolean. The value of this _attribute_ can be set to "1" by sending an "On"
+_command_ or it can be set to "0" by sending an "Off" _command_.
-All of Silabs's examples within the Matter repo have all the features enabled by
-default, as to provide the best end user experience. However some of those
-features can easily be toggled on or off. Here is a short list of options to be
-passed to the build scripts.
+See "appclusters.pdf" for a list of all available **clusters** or to find useful
+documentation about their behavior. The C++ implementation of these **clusters**
+is located in [the clusters directory][2]. Note that you can also create your
+own custom **cluster**.
-### Disabling logging
+### Using ZAP to configure clusters
-`chip_progress_logging, chip_detail_logging, chip_automation_logging`
+ZAP is a tool which is used to define the **cluster** configuration of a Matter
+application. Using ZAP, you can choose which **cluster** to enable for your
+application.
- ```
- $ ./scripts/examples/gn_efr32_example.sh ./SILABS_examples/template/efr32 ./out/template BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false"
- ```
+For example, if you enable the "level control" **cluster** for your application,
+you application will be able to receive "level control" commands.
-### Debug build / release build
+ZAP also allows you to modify the settings of a **cluster**. For example, you
+can use ZAP to set what the initial value of the "OnOff" _attribute_ will be at
+the start of the application.
-`is_debug`
+The clusters configuration of an app are stored in a ".zap" file. For the
+template application, the template.zap file is located in
+[template_DataModel_config][3]. You can use ZAP to modify this file.
- ```
- $ ./scripts/examples/gn_efr32_example.sh ./SILABS_examples/template/efr32 ./out/template BRD4164A "is_debug=false"
- ```
+Once the modifications are saved, the "file.zap" can be fed to the ZAP tool to
+_generate_ a C implementation of these clusters. The C files generated must be
+stored in the [zzz-generated folder](../../../zzz_generated).
-### Disabling LCD
+### The GN Build system
-`show_qr_code`
+For the Matter project, GN is used for the building process. The build
+configuration is stored inside the [BUILD.gn](BUILD.gn) files and complemented
+by other .gn files.
- ```
- $ ./scripts/examples/gn_efr32_example.sh ./SILABS_examples/template/efr32 ./out/template BRD4164A "show_qr_code=false"
- ```
+## Running the application
-### KVS maximum entry count
+The Lighting App for EFR32 contains useful information about building, flashing
+and monitoring a lighting app using an EFR32 device. You can find this
+information in its [README file][1].
-`kvs_max_entries`
+Color Lighting App also has useful information about setting up a Matter EFR32
+app. Refer to its [README file][4] for more information.
- ```
- Set the maximum Kvs entries that can be stored in NVM (Default 75)
- Thresholds: 30 <= kvs_max_entries <= 255
+###### Last modified August 5th, 2022.
- $ ./scripts/examples/gn_efr32_example.sh ./SILABS_examples/template/efr32 ./out/template BRD4164A kvs_max_entries=50
- ```
+[1]: ../../../examples/lighting-app/efr32/README.md
+[2]: ../../../src/app/clusters
+[3]: ../template_DataModel_config
+[4]: ../../sl-newLight/efr32/README.md
diff --git a/silabs_examples/template/efr32/src/ZclCallbacks.cpp b/silabs_examples/template/efr32/src/ZclCallbacks.cpp
index 66ecdca623fa56..e8cdfc2bfa6acd 100644
--- a/silabs_examples/template/efr32/src/ZclCallbacks.cpp
+++ b/silabs_examples/template/efr32/src/ZclCallbacks.cpp
@@ -34,17 +34,25 @@ void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath &
uint8_t * value)
{
ClusterId clusterId = attributePath.mClusterId;
- // AttributeId attributeId = attributePath.mAttributeId;
- ChipLogProgress(Zcl, "Cluster callback: " ChipLogFormatMEI, ChipLogValueMEI(clusterId));
+ AttributeId attributeId = attributePath.mAttributeId;
+ ChipLogProgress(Zcl, "Cluster callback: " ChipLogFormatMEI, ChipLogValueMEI(clusterId));
// Template TODO, fill with cluster configuration
- // switch (clusterId)
- // {
- // case :
- // default :
-
- // }
+ switch (clusterId)
+ {
+ case OnOff::Id:
+ ChipLogProgress(Zcl, " OnOff command received with attribute ID: " ChipLogFormatMEI
+ " Type: %u, Value: %u, length %u", ChipLogValueMEI(attributeId), type, *value, size);
+ break;
+ case LevelControl::Id:
+ ChipLogProgress(Zcl, " LevelControl command received with attribute ID: " ChipLogFormatMEI
+ " Type: %u, Value: %u, length %u", ChipLogValueMEI(attributeId), type, *value, size);
+ break;
+ default :
+ ChipLogProgress(Zcl, " A cluster command was received with attribute ID: " ChipLogFormatMEI
+ " Type: %u, Value: %u, length %u", ChipLogValueMEI(attributeId), type, *value, size);
+ }
}
/** @brief OnOff Cluster Init
diff --git a/silabs_examples/template/template_DataModel_config/BUILD.gn b/silabs_examples/template/template_DataModel_config/BUILD.gn
index 3d07419af38954..9469156be8e4ff 100644
--- a/silabs_examples/template/template_DataModel_config/BUILD.gn
+++ b/silabs_examples/template/template_DataModel_config/BUILD.gn
@@ -16,7 +16,7 @@ import("//build_overrides/chip.gni")
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
import("${chip_root}/src/app/chip_data_model.gni")
-chip_data_model("sl_template") {
+chip_data_model("template_DataModel_config") {
zap_file = "sl_template.zap"
zap_pregenerated_dir = "${chip_root}/zzz_generated/sl_template/zap-generated"
diff --git a/silabs_examples/template/template_DataModel_config/sl_template.matter b/silabs_examples/template/template_DataModel_config/sl_template.matter
index 7830bcc39c7641..8866db84fa2df6 100644
--- a/silabs_examples/template/template_DataModel_config/sl_template.matter
+++ b/silabs_examples/template/template_DataModel_config/sl_template.matter
@@ -2,8 +2,268 @@
// It is for view/code review purposes only.
struct LabelStruct {
- CHAR_STRING<16> label = 0;
- CHAR_STRING<16> value = 1;
+ char_string<16> label = 0;
+ 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 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 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;
+ }
+
+ command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0;
+ command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
+ command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2;
+ command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3;
+ command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4;
+ 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 LevelControl = 8 {
+ enum MoveMode : ENUM8 {
+ kUp = 0;
+ kDown = 1;
+ }
+
+ enum StepMode : ENUM8 {
+ kUp = 0;
+ kDown = 1;
+ }
+
+ bitmap LevelControlFeature : BITMAP32 {
+ kOnOff = 0x1;
+ kLighting = 0x2;
+ kFrequency = 0x4;
+ }
+
+ readonly attribute int8u currentLevel = 0;
+ readonly attribute int16u remainingTime = 1;
+ readonly attribute int8u minLevel = 2;
+ readonly attribute int8u maxLevel = 3;
+ readonly attribute int16u currentFrequency = 4;
+ readonly attribute int16u minFrequency = 5;
+ readonly attribute int16u maxFrequency = 6;
+ attribute bitmap8 options = 15;
+ attribute int16u onOffTransitionTime = 16;
+ attribute nullable int8u onLevel = 17;
+ attribute nullable int16u onTransitionTime = 18;
+ attribute nullable int16u offTransitionTime = 19;
+ attribute nullable int8u defaultMoveRate = 20;
+ attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct MoveToLevelRequest {
+ INT8U level = 0;
+ INT16U transitionTime = 1;
+ BITMAP8 optionMask = 2;
+ BITMAP8 optionOverride = 3;
+ }
+
+ request struct MoveRequest {
+ MoveMode moveMode = 0;
+ INT8U rate = 1;
+ BITMAP8 optionMask = 2;
+ BITMAP8 optionOverride = 3;
+ }
+
+ request struct StepRequest {
+ StepMode stepMode = 0;
+ INT8U stepSize = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionMask = 3;
+ BITMAP8 optionOverride = 4;
+ }
+
+ request struct StopRequest {
+ BITMAP8 optionMask = 0;
+ BITMAP8 optionOverride = 1;
+ }
+
+ request struct MoveToLevelWithOnOffRequest {
+ INT8U level = 0;
+ INT16U transitionTime = 1;
+ }
+
+ request struct MoveWithOnOffRequest {
+ MoveMode moveMode = 0;
+ INT8U rate = 1;
+ }
+
+ request struct StepWithOnOffRequest {
+ StepMode stepMode = 0;
+ INT8U stepSize = 1;
+ INT16U transitionTime = 2;
+ }
+
+ command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
+ command Move(MoveRequest): DefaultSuccess = 1;
+ command Step(StepRequest): DefaultSuccess = 2;
+ command Stop(StopRequest): DefaultSuccess = 3;
+ command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4;
+ command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5;
+ command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6;
+ command StopWithOnOff(): DefaultSuccess = 7;
+}
+
+server cluster Descriptor = 29 {
+ struct DeviceType {
+ devtype_id type = 0;
+ int16u revision = 1;
+ }
+
+ readonly attribute DeviceType deviceList[] = 0;
+ readonly attribute CLUSTER_ID serverList[] = 1;
+ readonly attribute CLUSTER_ID clientList[] = 2;
+ readonly attribute ENDPOINT_NO partsList[] = 3;
+ readonly attribute int16u clusterRevision = 65533;
}
server cluster AccessControl = 31 {
@@ -30,7 +290,7 @@ server cluster AccessControl = 31 {
struct AccessControlEntry {
Privilege privilege = 1;
AuthMode authMode = 2;
- nullable INT64U subjects[] = 3;
+ nullable int64u subjects[] = 3;
nullable Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -42,7 +302,7 @@ server cluster AccessControl = 31 {
}
struct ExtensionEntry {
- OCTET_STRING<128> data = 1;
+ octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
@@ -71,45 +331,10 @@ server cluster AccessControl = 31 {
readonly attribute int16u clusterRevision = 65533;
}
-server cluster AdministratorCommissioning = 60 {
- enum CommissioningWindowStatus : ENUM8 {
- kWindowNotOpen = 0;
- kEnhancedWindowOpen = 1;
- kBasicWindowOpen = 2;
- }
-
- enum StatusCode : ENUM8 {
- kBusy = 1;
- kPAKEParameterError = 2;
- kWindowNotOpen = 3;
- }
-
- readonly attribute int8u windowStatus = 0;
- readonly attribute fabric_idx adminFabricIndex = 1;
- readonly attribute int16u adminVendorId = 2;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct OpenCommissioningWindowRequest {
- INT16U commissioningTimeout = 0;
- OCTET_STRING PAKEVerifier = 1;
- INT16U discriminator = 2;
- INT32U iterations = 3;
- OCTET_STRING salt = 4;
- }
-
- request struct OpenBasicCommissioningWindowRequest {
- INT16U commissioningTimeout = 0;
- }
-
- timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0;
- timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1;
- timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2;
-}
-
-server cluster Basic = 40 {
- struct CapabilityMinimaStruct {
- int16u caseSessionsPerFabric = 0;
- int16u subscriptionsPerFabric = 1;
+server cluster Basic = 40 {
+ struct CapabilityMinimaStruct {
+ int16u caseSessionsPerFabric = 0;
+ int16u subscriptionsPerFabric = 1;
}
critical event StartUp = 0 {
@@ -149,343 +374,169 @@ server cluster Basic = 40 {
readonly attribute int16u clusterRevision = 65533;
}
-server cluster ColorControl = 768 {
- enum ColorLoopAction : ENUM8 {
- kDeactivate = 0;
- kActivateFromColorLoopStartEnhancedHue = 1;
- kActivateFromEnhancedCurrentHue = 2;
+client cluster OtaSoftwareUpdateProvider = 41 {
+ enum OTAApplyUpdateAction : ENUM8 {
+ kProceed = 0;
+ kAwaitNextAction = 1;
+ kDiscontinue = 2;
}
- enum ColorLoopDirection : ENUM8 {
- kDecrementHue = 0;
- kIncrementHue = 1;
+ enum OTADownloadProtocol : ENUM8 {
+ kBDXSynchronous = 0;
+ kBDXAsynchronous = 1;
+ kHttps = 2;
+ kVendorSpecific = 3;
}
- enum ColorMode : ENUM8 {
- kCurrentHueAndCurrentSaturation = 0;
- kCurrentXAndCurrentY = 1;
- kColorTemperature = 2;
+ enum OTAQueryStatus : ENUM8 {
+ kUpdateAvailable = 0;
+ kBusy = 1;
+ kNotAvailable = 2;
+ kDownloadProtocolNotSupported = 3;
}
- enum HueDirection : ENUM8 {
- kShortestDistance = 0;
- kLongestDistance = 1;
- kUp = 2;
- kDown = 3;
- }
+ readonly attribute int16u clusterRevision = 65533;
- enum HueMoveMode : ENUM8 {
- kStop = 0;
- kUp = 1;
- kDown = 3;
+ request struct QueryImageRequest {
+ vendor_id vendorId = 0;
+ INT16U productId = 1;
+ INT32U softwareVersion = 2;
+ OTADownloadProtocol protocolsSupported[] = 3;
+ optional INT16U hardwareVersion = 4;
+ optional CHAR_STRING location = 5;
+ optional BOOLEAN requestorCanConsent = 6;
+ optional OCTET_STRING metadataForProvider = 7;
}
- enum HueStepMode : ENUM8 {
- kUp = 1;
- kDown = 3;
+ request struct ApplyUpdateRequestRequest {
+ OCTET_STRING updateToken = 0;
+ INT32U newVersion = 1;
}
- enum SaturationMoveMode : ENUM8 {
- kStop = 0;
- kUp = 1;
- kDown = 3;
+ request struct NotifyUpdateAppliedRequest {
+ OCTET_STRING updateToken = 0;
+ INT32U softwareVersion = 1;
}
- enum SaturationStepMode : ENUM8 {
- kUp = 1;
- kDown = 3;
+ response struct QueryImageResponse = 1 {
+ OTAQueryStatus status = 0;
+ optional INT32U delayedActionTime = 1;
+ optional CHAR_STRING imageURI = 2;
+ optional INT32U softwareVersion = 3;
+ optional CHAR_STRING softwareVersionString = 4;
+ optional OCTET_STRING updateToken = 5;
+ optional BOOLEAN userConsentNeeded = 6;
+ optional OCTET_STRING metadataForRequestor = 7;
}
- bitmap ColorCapabilities : BITMAP16 {
- kHueSaturationSupported = 0x1;
- kEnhancedHueSupported = 0x2;
- kColorLoopSupported = 0x4;
- kXYAttributesSupported = 0x8;
- kColorTemperatureSupported = 0x10;
+ response struct ApplyUpdateResponse = 3 {
+ OTAApplyUpdateAction action = 0;
+ INT32U delayedActionTime = 1;
}
- bitmap ColorControlFeature : BITMAP32 {
- kHueAndSaturation = 0x1;
- kEnhancedHue = 0x2;
- kColorLoop = 0x4;
- kXy = 0x8;
- kColorTemperature = 0x10;
- }
+ command QueryImage(QueryImageRequest): QueryImageResponse = 0;
+ command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2;
+ command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4;
+}
- bitmap ColorLoopUpdateFlags : BITMAP8 {
- kUpdateAction = 0x1;
- kUpdateDirection = 0x2;
- kUpdateTime = 0x4;
- kUpdateStartHue = 0x8;
+server cluster OtaSoftwareUpdateRequestor = 42 {
+ enum OTAAnnouncementReason : ENUM8 {
+ kSimpleAnnouncement = 0;
+ kUpdateAvailable = 1;
+ kUrgentUpdateAvailable = 2;
}
- readonly attribute int8u currentHue = 0;
- readonly attribute int8u currentSaturation = 1;
- readonly attribute int16u remainingTime = 2;
- readonly attribute int16u currentX = 3;
- readonly attribute int16u currentY = 4;
- readonly attribute int16u colorTemperature = 7;
- readonly attribute enum8 colorMode = 8;
- attribute bitmap8 colorControlOptions = 15;
- readonly attribute int8u numberOfPrimaries = 16;
- readonly attribute int16u enhancedCurrentHue = 16384;
- readonly attribute enum8 enhancedColorMode = 16385;
- readonly attribute int8u colorLoopActive = 16386;
- readonly attribute int8u colorLoopDirection = 16387;
- readonly attribute int16u colorLoopTime = 16388;
- readonly attribute int16u colorLoopStartEnhancedHue = 16389;
- readonly attribute int16u colorLoopStoredEnhancedHue = 16390;
- readonly attribute bitmap16 colorCapabilities = 16394;
- readonly attribute int16u colorTempPhysicalMin = 16395;
- readonly attribute int16u colorTempPhysicalMax = 16396;
- readonly attribute int16u coupleColorTempToLevelMinMireds = 16397;
- attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct MoveToHueRequest {
- INT8U hue = 0;
- HueDirection direction = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ enum OTAChangeReasonEnum : ENUM8 {
+ kUnknown = 0;
+ kSuccess = 1;
+ kFailure = 2;
+ kTimeOut = 3;
+ kDelayByProvider = 4;
}
- request struct MoveHueRequest {
- HueMoveMode moveMode = 0;
- INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ enum OTAUpdateStateEnum : ENUM8 {
+ kUnknown = 0;
+ kIdle = 1;
+ kQuerying = 2;
+ kDelayedOnQuery = 3;
+ kDownloading = 4;
+ kApplying = 5;
+ kDelayedOnApply = 6;
+ kRollingBack = 7;
+ kDelayedOnUserConsent = 8;
}
- request struct StepHueRequest {
- HueStepMode stepMode = 0;
- INT8U stepSize = 1;
- INT8U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ struct ProviderLocation {
+ node_id providerNodeID = 1;
+ endpoint_no endpoint = 2;
+ fabric_idx fabricIndex = 254;
}
- request struct MoveToSaturationRequest {
- INT8U saturation = 0;
- INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ info event StateTransition = 0 {
+ OTAUpdateStateEnum previousState = 0;
+ OTAUpdateStateEnum newState = 1;
+ OTAChangeReasonEnum reason = 2;
+ nullable INT32U targetSoftwareVersion = 3;
}
- request struct MoveSaturationRequest {
- SaturationMoveMode moveMode = 0;
- INT8U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
+ critical event VersionApplied = 1 {
+ INT32U softwareVersion = 0;
+ INT16U productID = 1;
}
- request struct StepSaturationRequest {
- SaturationStepMode stepMode = 0;
- INT8U stepSize = 1;
- INT8U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ info event DownloadError = 2 {
+ INT32U softwareVersion = 0;
+ INT64U bytesDownloaded = 1;
+ nullable INT8U progressPercent = 2;
+ nullable INT64S platformCode = 3;
}
- request struct MoveToHueAndSaturationRequest {
- INT8U hue = 0;
- INT8U saturation = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
- }
+ attribute ProviderLocation defaultOtaProviders[] = 0;
+ readonly attribute boolean updatePossible = 1;
+ readonly attribute OTAUpdateStateEnum updateState = 2;
+ readonly attribute nullable int8u updateStateProgress = 3;
+ readonly attribute int16u clusterRevision = 65533;
- request struct MoveToColorRequest {
- INT16U colorX = 0;
- INT16U colorY = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
+ request struct AnnounceOtaProviderRequest {
+ node_id providerNodeId = 0;
+ vendor_id vendorId = 1;
+ OTAAnnouncementReason announcementReason = 2;
+ optional OCTET_STRING metadataForNode = 3;
+ endpoint_no endpoint = 4;
}
- request struct MoveColorRequest {
- INT16S rateX = 0;
- INT16S rateY = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
- }
+ command AnnounceOtaProvider(AnnounceOtaProviderRequest): DefaultSuccess = 0;
+}
- request struct StepColorRequest {
- INT16S stepX = 0;
- INT16S stepY = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
- }
-
- request struct MoveToColorTemperatureRequest {
- INT16U colorTemperature = 0;
- INT16U transitionTime = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
- }
-
- request struct EnhancedMoveToHueRequest {
- INT16U enhancedHue = 0;
- HueDirection direction = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
- }
-
- request struct EnhancedMoveHueRequest {
- HueMoveMode moveMode = 0;
- INT16U rate = 1;
- BITMAP8 optionsMask = 2;
- BITMAP8 optionsOverride = 3;
- }
-
- request struct EnhancedStepHueRequest {
- HueStepMode stepMode = 0;
- INT16U stepSize = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
- }
-
- request struct EnhancedMoveToHueAndSaturationRequest {
- INT16U enhancedHue = 0;
- INT8U saturation = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionsMask = 3;
- BITMAP8 optionsOverride = 4;
- }
-
- request struct ColorLoopSetRequest {
- ColorLoopUpdateFlags updateFlags = 0;
- ColorLoopAction action = 1;
- ColorLoopDirection direction = 2;
- INT16U time = 3;
- INT16U startHue = 4;
- BITMAP8 optionsMask = 5;
- BITMAP8 optionsOverride = 6;
- }
-
- request struct StopMoveStepRequest {
- BITMAP8 optionsMask = 0;
- BITMAP8 optionsOverride = 1;
- }
-
- request struct MoveColorTemperatureRequest {
- HueMoveMode moveMode = 0;
- INT16U rate = 1;
- INT16U colorTemperatureMinimum = 2;
- INT16U colorTemperatureMaximum = 3;
- BITMAP8 optionsMask = 4;
- BITMAP8 optionsOverride = 5;
- }
-
- request struct StepColorTemperatureRequest {
- HueStepMode stepMode = 0;
- INT16U stepSize = 1;
- INT16U transitionTime = 2;
- INT16U colorTemperatureMinimum = 3;
- INT16U colorTemperatureMaximum = 4;
- BITMAP8 optionsMask = 5;
- BITMAP8 optionsOverride = 6;
- }
-
- command MoveToHue(MoveToHueRequest): DefaultSuccess = 0;
- command MoveHue(MoveHueRequest): DefaultSuccess = 1;
- command StepHue(StepHueRequest): DefaultSuccess = 2;
- command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3;
- command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4;
- command StepSaturation(StepSaturationRequest): DefaultSuccess = 5;
- command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6;
- command MoveToColor(MoveToColorRequest): DefaultSuccess = 7;
- command MoveColor(MoveColorRequest): DefaultSuccess = 8;
- command StepColor(StepColorRequest): DefaultSuccess = 9;
- command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10;
- command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64;
- command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65;
- command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66;
- command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67;
- command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68;
- command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71;
- command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75;
- command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76;
-}
-
-server cluster Descriptor = 29 {
- struct DeviceType {
- DEVTYPE_ID type = 0;
- INT16U revision = 1;
- }
-
- readonly attribute DeviceType deviceList[] = 0;
- readonly attribute CLUSTER_ID serverList[] = 1;
- readonly attribute CLUSTER_ID clientList[] = 2;
- readonly attribute ENDPOINT_NO partsList[] = 3;
+server cluster LocalizationConfiguration = 43 {
+ readonly attribute CHAR_STRING supportedLocales[] = 1;
readonly attribute int16u clusterRevision = 65533;
}
-server cluster DiagnosticLogs = 50 {
- enum LogsIntent : ENUM8 {
- kEndUserSupport = 0;
- kNetworkDiag = 1;
- kCrashLogs = 2;
- }
-
- enum LogsStatus : ENUM8 {
- kSuccess = 0;
- kExhausted = 1;
- kNoLogs = 2;
- kBusy = 3;
- kDenied = 4;
- }
-
- enum LogsTransferProtocol : ENUM8 {
- kResponsePayload = 0;
- kBdx = 1;
- }
-
-
- request struct RetrieveLogsRequestRequest {
- LogsIntent intent = 0;
- LogsTransferProtocol requestedProtocol = 1;
- OCTET_STRING transferFileDesignator = 2;
+server cluster TimeFormatLocalization = 44 {
+ enum CalendarType : ENUM8 {
+ kBuddhist = 0;
+ kChinese = 1;
+ kCoptic = 2;
+ kEthiopian = 3;
+ kGregorian = 4;
+ kHebrew = 5;
+ kIndian = 6;
+ kIslamic = 7;
+ kJapanese = 8;
+ kKorean = 9;
+ kPersian = 10;
+ kTaiwanese = 11;
}
- command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0;
-}
-
-server cluster EthernetNetworkDiagnostics = 55 {
- enum PHYRateType : ENUM8 {
- k10m = 0;
- k100m = 1;
- k1000m = 2;
- k25g = 3;
- k5g = 4;
- k10g = 5;
- k40g = 6;
- k100g = 7;
- k200g = 8;
- k400g = 9;
+ enum HourFormat : ENUM8 {
+ k12hr = 0;
+ k24hr = 1;
}
- readonly attribute nullable PHYRateType PHYRate = 0;
- readonly attribute nullable boolean fullDuplex = 1;
- readonly attribute int64u packetRxCount = 2;
- readonly attribute int64u packetTxCount = 3;
- readonly attribute int64u txErrCount = 4;
- readonly attribute int64u collisionCount = 5;
- readonly attribute int64u overrunCount = 6;
- readonly attribute nullable boolean carrierDetect = 7;
- readonly attribute int64u timeSinceReset = 8;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- command ResetCounts(): DefaultSuccess = 0;
-}
-
-server cluster FixedLabel = 64 {
- readonly attribute LabelStruct labelList[] = 0;
+ attribute HourFormat hourFormat = 0;
+ attribute CalendarType activeCalendarType = 1;
+ readonly attribute CalendarType supportedCalendarTypes[] = 2;
readonly attribute int16u clusterRevision = 65533;
}
@@ -505,7 +556,8 @@ server cluster GeneralCommissioning = 48 {
}
struct BasicCommissioningInfo {
- INT16U failSafeExpiryLengthSeconds = 0;
+ int16u failSafeExpiryLengthSeconds = 0;
+ int16u maxCumulativeFailsafeSeconds = 1;
}
attribute access(write: administer) int64u breadcrumb = 0;
@@ -527,17 +579,17 @@ server cluster GeneralCommissioning = 48 {
INT64U breadcrumb = 2;
}
- response struct ArmFailSafeResponse {
+ response struct ArmFailSafeResponse = 1 {
CommissioningError errorCode = 0;
CHAR_STRING debugText = 1;
}
- response struct SetRegulatoryConfigResponse {
+ response struct SetRegulatoryConfigResponse = 3 {
CommissioningError errorCode = 0;
CHAR_STRING debugText = 1;
}
- response struct CommissioningCompleteResponse {
+ response struct CommissioningCompleteResponse = 5 {
CommissioningError errorCode = 0;
CHAR_STRING debugText = 1;
}
@@ -547,686 +599,601 @@ server cluster GeneralCommissioning = 48 {
command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4;
}
-server cluster GeneralDiagnostics = 51 {
- enum BootReasonType : ENUM8 {
- kUnspecified = 0;
- kPowerOnReboot = 1;
- kBrownOutReset = 2;
- kSoftwareWatchdogReset = 3;
- kHardwareWatchdogReset = 4;
- kSoftwareUpdateCompleted = 5;
- kSoftwareReset = 6;
+server cluster NetworkCommissioning = 49 {
+ enum NetworkCommissioningStatus : ENUM8 {
+ kSuccess = 0;
+ kOutOfRange = 1;
+ kBoundsExceeded = 2;
+ kNetworkIDNotFound = 3;
+ kDuplicateNetworkID = 4;
+ kNetworkNotFound = 5;
+ kRegulatoryError = 6;
+ kAuthFailure = 7;
+ kUnsupportedSecurity = 8;
+ kOtherConnectionFailure = 9;
+ kIPV6Failed = 10;
+ kIPBindFailed = 11;
+ kUnknownError = 12;
}
- enum HardwareFaultType : ENUM8 {
- kUnspecified = 0;
- kRadio = 1;
- kSensor = 2;
- kResettableOverTemp = 3;
- kNonResettableOverTemp = 4;
- kPowerSource = 5;
- kVisualDisplayFault = 6;
- kAudioOutputFault = 7;
- kUserInterfaceFault = 8;
- kNonVolatileMemoryError = 9;
- kTamperDetected = 10;
+ enum WiFiBand : ENUM8 {
+ k2g4 = 0;
+ k3g65 = 1;
+ k5g = 2;
+ k6g = 3;
+ k60g = 4;
}
- enum InterfaceType : ENUM8 {
- kUnspecified = 0;
- kWiFi = 1;
- kEthernet = 2;
- kCellular = 3;
- kThread = 4;
+ bitmap NetworkCommissioningFeature : BITMAP32 {
+ kWiFiNetworkInterface = 0x1;
+ kThreadNetworkInterface = 0x2;
+ kEthernetNetworkInterface = 0x4;
}
- enum NetworkFaultType : ENUM8 {
- kUnspecified = 0;
- kHardwareFailure = 1;
- kNetworkJammed = 2;
- kConnectionFailed = 3;
+ bitmap WiFiSecurity : BITMAP8 {
+ kUnencrypted = 0x1;
+ kWepPersonal = 0x2;
+ kWpaPersonal = 0x4;
+ kWpa2Personal = 0x8;
+ kWpa3Personal = 0x10;
}
- enum RadioFaultType : ENUM8 {
- kUnspecified = 0;
- kWiFiFault = 1;
- kCellularFault = 2;
- kThreadFault = 3;
- kNFCFault = 4;
- kBLEFault = 5;
- kEthernetFault = 6;
+ struct NetworkInfo {
+ octet_string<32> networkID = 0;
+ boolean connected = 1;
}
- struct NetworkInterfaceType {
- CHAR_STRING<32> name = 0;
- BOOLEAN isOperational = 1;
- nullable BOOLEAN offPremiseServicesReachableIPv4 = 2;
- nullable BOOLEAN offPremiseServicesReachableIPv6 = 3;
- OCTET_STRING<8> hardwareAddress = 4;
- OCTET_STRING IPv4Addresses[] = 5;
- OCTET_STRING IPv6Addresses[] = 6;
- InterfaceType type = 7;
+ struct WiFiInterfaceScanResult {
+ WiFiSecurity security = 0;
+ octet_string<32> ssid = 1;
+ octet_string<6> bssid = 2;
+ int16u channel = 3;
+ WiFiBand wiFiBand = 4;
+ int8s rssi = 5;
}
- critical event HardwareFaultChange = 0 {
- HardwareFaultType current[] = 0;
- HardwareFaultType previous[] = 1;
+ struct ThreadInterfaceScanResult {
+ int16u panId = 0;
+ int64u extendedPanId = 1;
+ char_string<16> networkName = 2;
+ int16u channel = 3;
+ int8u version = 4;
+ octet_string<8> extendedAddress = 5;
+ int8s rssi = 6;
+ int8u lqi = 7;
}
- critical event RadioFaultChange = 1 {
- RadioFaultType current[] = 0;
- RadioFaultType previous[] = 1;
- }
+ readonly attribute access(read: administer) int8u maxNetworks = 0;
+ readonly attribute access(read: administer) NetworkInfo networks[] = 1;
+ readonly attribute int8u scanMaxTimeSeconds = 2;
+ readonly attribute int8u connectMaxTimeSeconds = 3;
+ attribute access(write: administer) boolean interfaceEnabled = 4;
+ readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5;
+ readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6;
+ readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
- critical event NetworkFaultChange = 2 {
- NetworkFaultType current[] = 0;
- NetworkFaultType previous[] = 1;
+ request struct ScanNetworksRequest {
+ optional nullable OCTET_STRING ssid = 0;
+ optional INT64U breadcrumb = 1;
}
- critical event BootReason = 3 {
- BootReasonType bootReason = 0;
+ request struct AddOrUpdateWiFiNetworkRequest {
+ OCTET_STRING ssid = 0;
+ OCTET_STRING credentials = 1;
+ optional INT64U breadcrumb = 2;
}
- readonly attribute NetworkInterfaceType networkInterfaces[] = 0;
- readonly attribute int16u rebootCount = 1;
- readonly attribute int64u upTime = 2;
- readonly attribute int32u totalOperationalHours = 3;
- readonly attribute enum8 bootReasons = 4;
- readonly attribute ENUM8 activeHardwareFaults[] = 5;
- readonly attribute ENUM8 activeRadioFaults[] = 6;
- readonly attribute ENUM8 activeNetworkFaults[] = 7;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster GroupKeyManagement = 63 {
- enum GroupKeySecurityPolicy : ENUM8 {
- kTrustFirst = 0;
- kCacheAndSync = 1;
+ request struct AddOrUpdateThreadNetworkRequest {
+ OCTET_STRING operationalDataset = 0;
+ optional INT64U breadcrumb = 1;
}
- struct GroupKeyMapStruct {
- group_id groupId = 1;
- INT16U groupKeySetID = 2;
- fabric_idx fabricIndex = 254;
+ request struct RemoveNetworkRequest {
+ OCTET_STRING networkID = 0;
+ optional INT64U breadcrumb = 1;
}
- struct GroupInfoMapStruct {
- group_id groupId = 1;
- endpoint_no endpoints[] = 2;
- optional CHAR_STRING<16> groupName = 3;
- fabric_idx fabricIndex = 254;
+ request struct ConnectNetworkRequest {
+ OCTET_STRING networkID = 0;
+ optional INT64U breadcrumb = 1;
}
- struct GroupKeySetStruct {
- INT16U groupKeySetID = 0;
- GroupKeySecurityPolicy groupKeySecurityPolicy = 1;
- nullable OCTET_STRING<16> epochKey0 = 2;
- nullable epoch_us epochStartTime0 = 3;
- nullable OCTET_STRING<16> epochKey1 = 4;
- nullable epoch_us epochStartTime1 = 5;
- nullable OCTET_STRING<16> epochKey2 = 6;
- nullable epoch_us epochStartTime2 = 7;
+ request struct ReorderNetworkRequest {
+ OCTET_STRING networkID = 0;
+ INT8U networkIndex = 1;
+ optional INT64U breadcrumb = 2;
}
- attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0;
- readonly attribute GroupInfoMapStruct groupTable[] = 1;
- readonly attribute int16u maxGroupsPerFabric = 2;
- readonly attribute int16u maxGroupKeysPerFabric = 3;
- readonly attribute int16u clusterRevision = 65533;
+ response struct ScanNetworksResponse = 1 {
+ NetworkCommissioningStatus networkingStatus = 0;
+ optional CHAR_STRING debugText = 1;
+ optional WiFiInterfaceScanResult wiFiScanResults[] = 2;
+ optional ThreadInterfaceScanResult threadScanResults[] = 3;
+ }
- request struct KeySetWriteRequest {
- GroupKeySetStruct groupKeySet = 0;
+ response struct NetworkConfigResponse = 5 {
+ NetworkCommissioningStatus networkingStatus = 0;
+ optional CHAR_STRING debugText = 1;
+ optional INT8U networkIndex = 2;
}
- request struct KeySetReadRequest {
- INT16U groupKeySetID = 0;
+ response struct ConnectNetworkResponse = 7 {
+ NetworkCommissioningStatus networkingStatus = 0;
+ optional CHAR_STRING debugText = 1;
+ nullable INT32S errorValue = 2;
}
- request struct KeySetRemoveRequest {
- INT16U groupKeySetID = 0;
+ command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0;
+ command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2;
+ command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3;
+ command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4;
+ command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6;
+ command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8;
+}
+
+server cluster DiagnosticLogs = 50 {
+ enum LogsIntent : ENUM8 {
+ kEndUserSupport = 0;
+ kNetworkDiag = 1;
+ kCrashLogs = 2;
}
- request struct KeySetReadAllIndicesRequest {
- INT16U groupKeySetIDs[] = 0;
+ enum LogsStatus : ENUM8 {
+ kSuccess = 0;
+ kExhausted = 1;
+ kNoLogs = 2;
+ kBusy = 3;
+ kDenied = 4;
}
- response struct KeySetReadResponse {
- GroupKeySetStruct groupKeySet = 0;
+ enum LogsTransferProtocol : ENUM8 {
+ kResponsePayload = 0;
+ kBdx = 1;
}
- response struct KeySetReadAllIndicesResponse {
- INT16U groupKeySetIDs[] = 0;
+
+ request struct RetrieveLogsRequestRequest {
+ LogsIntent intent = 0;
+ LogsTransferProtocol requestedProtocol = 1;
+ OCTET_STRING transferFileDesignator = 2;
}
- command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0;
- command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1;
- command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3;
- command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4;
+ command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0;
}
-server cluster Groups = 4 {
- readonly attribute bitmap8 nameSupport = 0;
- readonly attribute int16u clusterRevision = 65533;
+server cluster GeneralDiagnostics = 51 {
+ enum BootReasonType : ENUM8 {
+ kUnspecified = 0;
+ kPowerOnReboot = 1;
+ kBrownOutReset = 2;
+ kSoftwareWatchdogReset = 3;
+ kHardwareWatchdogReset = 4;
+ kSoftwareUpdateCompleted = 5;
+ kSoftwareReset = 6;
+ }
- request struct AddGroupRequest {
- group_id groupId = 0;
- CHAR_STRING groupName = 1;
+ enum HardwareFaultType : ENUM8 {
+ kUnspecified = 0;
+ kRadio = 1;
+ kSensor = 2;
+ kResettableOverTemp = 3;
+ kNonResettableOverTemp = 4;
+ kPowerSource = 5;
+ kVisualDisplayFault = 6;
+ kAudioOutputFault = 7;
+ kUserInterfaceFault = 8;
+ kNonVolatileMemoryError = 9;
+ kTamperDetected = 10;
}
- request struct ViewGroupRequest {
- group_id groupId = 0;
+ enum InterfaceType : ENUM8 {
+ kUnspecified = 0;
+ kWiFi = 1;
+ kEthernet = 2;
+ kCellular = 3;
+ kThread = 4;
}
- request struct GetGroupMembershipRequest {
- group_id groupList[] = 0;
+ enum NetworkFaultType : ENUM8 {
+ kUnspecified = 0;
+ kHardwareFailure = 1;
+ kNetworkJammed = 2;
+ kConnectionFailed = 3;
}
- request struct RemoveGroupRequest {
- group_id groupId = 0;
+ enum RadioFaultType : ENUM8 {
+ kUnspecified = 0;
+ kWiFiFault = 1;
+ kCellularFault = 2;
+ kThreadFault = 3;
+ kNFCFault = 4;
+ kBLEFault = 5;
+ kEthernetFault = 6;
}
- request struct AddGroupIfIdentifyingRequest {
- group_id groupId = 0;
- CHAR_STRING groupName = 1;
+ struct NetworkInterfaceType {
+ char_string<32> name = 0;
+ boolean isOperational = 1;
+ nullable boolean offPremiseServicesReachableIPv4 = 2;
+ nullable boolean offPremiseServicesReachableIPv6 = 3;
+ octet_string<8> hardwareAddress = 4;
+ octet_string IPv4Addresses[] = 5;
+ octet_string IPv6Addresses[] = 6;
+ InterfaceType type = 7;
}
- response struct AddGroupResponse {
- ENUM8 status = 0;
- group_id groupId = 1;
+ critical event HardwareFaultChange = 0 {
+ HardwareFaultType current[] = 0;
+ HardwareFaultType previous[] = 1;
}
- response struct ViewGroupResponse {
- ENUM8 status = 0;
- group_id groupId = 1;
- CHAR_STRING groupName = 2;
+ critical event RadioFaultChange = 1 {
+ RadioFaultType current[] = 0;
+ RadioFaultType previous[] = 1;
}
- response struct GetGroupMembershipResponse {
- nullable INT8U capacity = 0;
- group_id groupList[] = 1;
+ critical event NetworkFaultChange = 2 {
+ NetworkFaultType current[] = 0;
+ NetworkFaultType previous[] = 1;
}
- response struct RemoveGroupResponse {
- ENUM8 status = 0;
- group_id groupId = 1;
+ critical event BootReason = 3 {
+ BootReasonType bootReason = 0;
}
- command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0;
- command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
- command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2;
- command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3;
- command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4;
- command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
+ readonly attribute NetworkInterfaceType networkInterfaces[] = 0;
+ readonly attribute int16u rebootCount = 1;
+ readonly attribute int64u upTime = 2;
+ readonly attribute int32u totalOperationalHours = 3;
+ readonly attribute enum8 bootReasons = 4;
+ readonly attribute ENUM8 activeHardwareFaults[] = 5;
+ readonly attribute ENUM8 activeRadioFaults[] = 6;
+ readonly attribute ENUM8 activeNetworkFaults[] = 7;
+ readonly attribute int16u clusterRevision = 65533;
}
-server cluster Identify = 3 {
- enum IdentifyEffectIdentifier : ENUM8 {
- kBlink = 0;
- kBreathe = 1;
- kOkay = 2;
- kChannelChange = 11;
- kFinishEffect = 254;
- kStopEffect = 255;
+server cluster SoftwareDiagnostics = 52 {
+ bitmap SoftwareDiagnosticsFeature : BITMAP32 {
+ kWaterMarks = 0x1;
}
- enum IdentifyEffectVariant : ENUM8 {
- kDefault = 0;
+ struct ThreadMetrics {
+ int64u id = 0;
+ optional char_string<8> name = 1;
+ optional int32u stackFreeCurrent = 2;
+ optional int32u stackFreeMinimum = 3;
+ optional int32u stackSize = 4;
}
- enum IdentifyIdentifyType : ENUM8 {
- kNone = 0;
- kVisibleLight = 1;
- kVisibleLED = 2;
- kAudibleBeep = 3;
- kDisplay = 4;
- kActuator = 5;
+ info event SoftwareFault = 0 {
+ INT64U id = 0;
+ optional CHAR_STRING name = 1;
+ optional OCTET_STRING faultRecording = 2;
}
- attribute int16u identifyTime = 0;
- readonly attribute enum8 identifyType = 1;
+ readonly attribute ThreadMetrics threadMetrics[] = 0;
+ readonly attribute int64u currentHeapFree = 1;
+ readonly attribute int64u currentHeapUsed = 2;
+ readonly attribute int64u currentHeapHighWatermark = 3;
+ readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
- request struct IdentifyRequest {
- INT16U identifyTime = 0;
- }
+ command ResetWatermarks(): DefaultSuccess = 0;
+}
- request struct TriggerEffectRequest {
- IdentifyEffectIdentifier effectIdentifier = 0;
- IdentifyEffectVariant effectVariant = 1;
- }
-
- response struct IdentifyQueryResponse {
- INT16U timeout = 0;
- }
-
- command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0;
- command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1;
- command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64;
-}
-
-server cluster LevelControl = 8 {
- enum MoveMode : ENUM8 {
- kUp = 0;
- kDown = 1;
- }
-
- enum StepMode : ENUM8 {
- kUp = 0;
- kDown = 1;
+server cluster ThreadNetworkDiagnostics = 53 {
+ enum NetworkFault : ENUM8 {
+ kUnspecified = 0;
+ kLinkDown = 1;
+ kHardwareFailure = 2;
+ kNetworkJammed = 3;
}
- bitmap LevelControlFeature : BITMAP32 {
- kOnOff = 0x1;
- kLighting = 0x2;
- kFrequency = 0x4;
+ enum RoutingRole : ENUM8 {
+ kUnspecified = 0;
+ kUnassigned = 1;
+ kSleepyEndDevice = 2;
+ kEndDevice = 3;
+ kReed = 4;
+ kRouter = 5;
+ kLeader = 6;
}
- readonly attribute int8u currentLevel = 0;
- readonly attribute int16u remainingTime = 1;
- readonly attribute int8u minLevel = 2;
- readonly attribute int8u maxLevel = 3;
- readonly attribute int16u currentFrequency = 4;
- readonly attribute int16u minFrequency = 5;
- readonly attribute int16u maxFrequency = 6;
- attribute bitmap8 options = 15;
- attribute int16u onOffTransitionTime = 16;
- attribute nullable int8u onLevel = 17;
- attribute nullable int16u onTransitionTime = 18;
- attribute nullable int16u offTransitionTime = 19;
- attribute nullable int8u defaultMoveRate = 20;
- attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct MoveToLevelRequest {
- INT8U level = 0;
- INT16U transitionTime = 1;
- BITMAP8 optionMask = 2;
- BITMAP8 optionOverride = 3;
+ enum ThreadConnectionStatus : ENUM8 {
+ kConnected = 0;
+ kNotConnected = 1;
}
- request struct MoveRequest {
- MoveMode moveMode = 0;
- INT8U rate = 1;
- BITMAP8 optionMask = 2;
- BITMAP8 optionOverride = 3;
+ bitmap ThreadNetworkDiagnosticsFeature : BITMAP32 {
+ kPacketCounts = 0x1;
+ kErrorCounts = 0x2;
+ kMLECounts = 0x4;
+ kMACCounts = 0x8;
}
- request struct StepRequest {
- StepMode stepMode = 0;
- INT8U stepSize = 1;
- INT16U transitionTime = 2;
- BITMAP8 optionMask = 3;
- BITMAP8 optionOverride = 4;
+ struct NeighborTable {
+ int64u extAddress = 0;
+ int32u age = 1;
+ int16u rloc16 = 2;
+ int32u linkFrameCounter = 3;
+ int32u mleFrameCounter = 4;
+ int8u lqi = 5;
+ nullable int8s averageRssi = 6;
+ nullable int8s lastRssi = 7;
+ int8u frameErrorRate = 8;
+ int8u messageErrorRate = 9;
+ boolean rxOnWhenIdle = 10;
+ boolean fullThreadDevice = 11;
+ boolean fullNetworkData = 12;
+ boolean isChild = 13;
}
- request struct StopRequest {
- BITMAP8 optionMask = 0;
- BITMAP8 optionOverride = 1;
+ struct RouteTable {
+ int64u extAddress = 0;
+ int16u rloc16 = 1;
+ int8u routerId = 2;
+ int8u nextHop = 3;
+ int8u pathCost = 4;
+ int8u LQIIn = 5;
+ int8u LQIOut = 6;
+ int8u age = 7;
+ boolean allocated = 8;
+ boolean linkEstablished = 9;
}
- request struct MoveToLevelWithOnOffRequest {
- INT8U level = 0;
- INT16U transitionTime = 1;
+ struct SecurityPolicy {
+ int16u rotationTime = 0;
+ bitmap16 flags = 1;
}
- request struct MoveWithOnOffRequest {
- MoveMode moveMode = 0;
- INT8U rate = 1;
+ struct OperationalDatasetComponents {
+ boolean activeTimestampPresent = 0;
+ boolean pendingTimestampPresent = 1;
+ boolean masterKeyPresent = 2;
+ boolean networkNamePresent = 3;
+ boolean extendedPanIdPresent = 4;
+ boolean meshLocalPrefixPresent = 5;
+ boolean delayPresent = 6;
+ boolean panIdPresent = 7;
+ boolean channelPresent = 8;
+ boolean pskcPresent = 9;
+ boolean securityPolicyPresent = 10;
+ boolean channelMaskPresent = 11;
}
- request struct StepWithOnOffRequest {
- StepMode stepMode = 0;
- INT8U stepSize = 1;
- INT16U transitionTime = 2;
+ info event ConnectionStatus = 0 {
+ ThreadConnectionStatus connectionStatus = 0;
}
- command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
- command Move(MoveRequest): DefaultSuccess = 1;
- command Step(StepRequest): DefaultSuccess = 2;
- command Stop(StopRequest): DefaultSuccess = 3;
- command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4;
- command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5;
- command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6;
- command StopWithOnOff(): DefaultSuccess = 7;
-}
-
-server cluster LocalizationConfiguration = 43 {
- attribute char_string<35> activeLocale = 1;
- readonly attribute CHAR_STRING supportedLocales[] = 2;
+ readonly attribute nullable int16u channel = 0;
+ readonly attribute nullable RoutingRole routingRole = 1;
+ readonly attribute nullable char_string<16> networkName = 2;
+ readonly attribute nullable int16u panId = 3;
+ readonly attribute nullable int64u extendedPanId = 4;
+ readonly attribute nullable octet_string<17> meshLocalPrefix = 5;
+ readonly attribute int64u overrunCount = 6;
+ readonly attribute NeighborTable neighborTableList[] = 7;
+ readonly attribute RouteTable routeTableList[] = 8;
+ readonly attribute nullable int32u partitionId = 9;
+ readonly attribute nullable int8u weighting = 10;
+ readonly attribute nullable int8u dataVersion = 11;
+ readonly attribute nullable int8u stableDataVersion = 12;
+ readonly attribute nullable int8u leaderRouterId = 13;
+ readonly attribute int16u detachedRoleCount = 14;
+ readonly attribute int16u childRoleCount = 15;
+ readonly attribute int16u routerRoleCount = 16;
+ readonly attribute int16u leaderRoleCount = 17;
+ readonly attribute int16u attachAttemptCount = 18;
+ readonly attribute int16u partitionIdChangeCount = 19;
+ readonly attribute int16u betterPartitionAttachAttemptCount = 20;
+ readonly attribute int16u parentChangeCount = 21;
+ readonly attribute int32u txTotalCount = 22;
+ readonly attribute int32u txUnicastCount = 23;
+ readonly attribute int32u txBroadcastCount = 24;
+ readonly attribute int32u txAckRequestedCount = 25;
+ readonly attribute int32u txAckedCount = 26;
+ readonly attribute int32u txNoAckRequestedCount = 27;
+ readonly attribute int32u txDataCount = 28;
+ readonly attribute int32u txDataPollCount = 29;
+ readonly attribute int32u txBeaconCount = 30;
+ readonly attribute int32u txBeaconRequestCount = 31;
+ readonly attribute int32u txOtherCount = 32;
+ readonly attribute int32u txRetryCount = 33;
+ readonly attribute int32u txDirectMaxRetryExpiryCount = 34;
+ readonly attribute int32u txIndirectMaxRetryExpiryCount = 35;
+ readonly attribute int32u txErrCcaCount = 36;
+ readonly attribute int32u txErrAbortCount = 37;
+ readonly attribute int32u txErrBusyChannelCount = 38;
+ readonly attribute int32u rxTotalCount = 39;
+ readonly attribute int32u rxUnicastCount = 40;
+ readonly attribute int32u rxBroadcastCount = 41;
+ readonly attribute int32u rxDataCount = 42;
+ readonly attribute int32u rxDataPollCount = 43;
+ readonly attribute int32u rxBeaconCount = 44;
+ readonly attribute int32u rxBeaconRequestCount = 45;
+ readonly attribute int32u rxOtherCount = 46;
+ readonly attribute int32u rxAddressFilteredCount = 47;
+ readonly attribute int32u rxDestAddrFilteredCount = 48;
+ readonly attribute int32u rxDuplicatedCount = 49;
+ readonly attribute int32u rxErrNoFrameCount = 50;
+ readonly attribute int32u rxErrUnknownNeighborCount = 51;
+ readonly attribute int32u rxErrInvalidSrcAddrCount = 52;
+ readonly attribute int32u rxErrSecCount = 53;
+ readonly attribute int32u rxErrFcsCount = 54;
+ readonly attribute int32u rxErrOtherCount = 55;
+ readonly attribute nullable int64u activeTimestamp = 56;
+ readonly attribute nullable int64u pendingTimestamp = 57;
+ readonly attribute nullable int32u delay = 58;
+ readonly attribute nullable SecurityPolicy securityPolicy = 59;
+ readonly attribute nullable octet_string<4> channelMask = 60;
+ readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61;
+ readonly attribute NetworkFault activeNetworkFaultsList[] = 62;
+ readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
+
+ command ResetCounts(): DefaultSuccess = 0;
}
-server cluster NetworkCommissioning = 49 {
- enum NetworkCommissioningStatus : ENUM8 {
- kSuccess = 0;
- kOutOfRange = 1;
- kBoundsExceeded = 2;
- kNetworkIDNotFound = 3;
- kDuplicateNetworkID = 4;
- kNetworkNotFound = 5;
- kRegulatoryError = 6;
- kAuthFailure = 7;
- kUnsupportedSecurity = 8;
- kOtherConnectionFailure = 9;
- kIPV6Failed = 10;
- kIPBindFailed = 11;
- kUnknownError = 12;
+server cluster WiFiNetworkDiagnostics = 54 {
+ enum AssociationFailureCause : ENUM8 {
+ kUnknown = 0;
+ kAssociationFailed = 1;
+ kAuthenticationFailed = 2;
+ kSsidNotFound = 3;
}
- enum WiFiBand : ENUM8 {
- k2g4 = 0;
- k3g65 = 1;
- k5g = 2;
- k6g = 3;
- k60g = 4;
+ enum SecurityType : ENUM8 {
+ kUnspecified = 0;
+ kNone = 1;
+ kWep = 2;
+ kWpa = 3;
+ kWpa2 = 4;
+ kWpa3 = 5;
}
- bitmap NetworkCommissioningFeature : BITMAP32 {
- kWiFiNetworkInterface = 0x1;
- kThreadNetworkInterface = 0x2;
- kEthernetNetworkInterface = 0x4;
+ enum WiFiConnectionStatus : ENUM8 {
+ kConnected = 0;
+ kNotConnected = 1;
}
- bitmap WiFiSecurity : BITMAP8 {
- kUnencrypted = 0x1;
- kWepPersonal = 0x2;
- kWpaPersonal = 0x4;
- kWpa2Personal = 0x8;
- kWpa3Personal = 0x10;
+ enum WiFiVersionType : ENUM8 {
+ k80211a = 0;
+ k80211b = 1;
+ k80211g = 2;
+ k80211n = 3;
+ k80211ac = 4;
+ k80211ax = 5;
}
- struct NetworkInfo {
- OCTET_STRING<32> networkID = 0;
- BOOLEAN connected = 1;
+ info event Disconnection = 0 {
+ INT16U reasonCode = 0;
}
- struct WiFiInterfaceScanResult {
- WiFiSecurity security = 0;
- OCTET_STRING<32> ssid = 1;
- OCTET_STRING<6> bssid = 2;
- INT16U channel = 3;
- WiFiBand wiFiBand = 4;
- INT8S rssi = 5;
+ info event AssociationFailure = 1 {
+ AssociationFailureCause associationFailure = 0;
+ INT16U status = 1;
}
- struct ThreadInterfaceScanResult {
- INT16U panId = 0;
- INT64U extendedPanId = 1;
- CHAR_STRING<16> networkName = 2;
- INT16U channel = 3;
- INT8U version = 4;
- OCTET_STRING<8> extendedAddress = 5;
- INT8S rssi = 6;
- INT8U lqi = 7;
+ info event ConnectionStatus = 2 {
+ WiFiConnectionStatus connectionStatus = 0;
}
- readonly attribute access(read: administer) int8u maxNetworks = 0;
- readonly attribute access(read: administer) NetworkInfo networks[] = 1;
- readonly attribute int8u scanMaxTimeSeconds = 2;
- readonly attribute int8u connectMaxTimeSeconds = 3;
- attribute access(write: administer) boolean interfaceEnabled = 4;
- readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5;
- readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6;
- readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7;
+ readonly attribute nullable octet_string<6> bssid = 0;
+ readonly attribute nullable SecurityType securityType = 1;
+ readonly attribute nullable WiFiVersionType wiFiVersion = 2;
+ readonly attribute nullable int16u channelNumber = 3;
+ readonly attribute nullable int8s rssi = 4;
+ readonly attribute int32u beaconLostCount = 5;
+ readonly attribute int32u beaconRxCount = 6;
+ readonly attribute int32u packetMulticastRxCount = 7;
+ readonly attribute int32u packetMulticastTxCount = 8;
+ readonly attribute int32u packetUnicastRxCount = 9;
+ readonly attribute int32u packetUnicastTxCount = 10;
+ readonly attribute int64u currentMaxRate = 11;
+ readonly attribute int64u overrunCount = 12;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
- request struct ScanNetworksRequest {
- optional nullable OCTET_STRING ssid = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct AddOrUpdateWiFiNetworkRequest {
- OCTET_STRING ssid = 0;
- OCTET_STRING credentials = 1;
- optional INT64U breadcrumb = 2;
- }
-
- request struct AddOrUpdateThreadNetworkRequest {
- OCTET_STRING operationalDataset = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct RemoveNetworkRequest {
- OCTET_STRING networkID = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct ConnectNetworkRequest {
- OCTET_STRING networkID = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct ReorderNetworkRequest {
- OCTET_STRING networkID = 0;
- INT8U networkIndex = 1;
- optional INT64U breadcrumb = 2;
- }
-
- response struct ScanNetworksResponse {
- NetworkCommissioningStatus networkingStatus = 0;
- optional CHAR_STRING debugText = 1;
- optional WiFiInterfaceScanResult wiFiScanResults[] = 2;
- optional ThreadInterfaceScanResult threadScanResults[] = 3;
- }
-
- response struct NetworkConfigResponse {
- NetworkCommissioningStatus networkingStatus = 0;
- optional CHAR_STRING debugText = 1;
- optional INT8U networkIndex = 2;
- }
-
- response struct ConnectNetworkResponse {
- NetworkCommissioningStatus networkingStatus = 0;
- optional CHAR_STRING debugText = 1;
- nullable INT32S errorValue = 2;
- }
-
- command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0;
- command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2;
- command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3;
- command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4;
- command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6;
- command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8;
+ command ResetCounts(): DefaultSuccess = 0;
}
-client cluster OtaSoftwareUpdateProvider = 41 {
- enum OTAApplyUpdateAction : ENUM8 {
- kProceed = 0;
- kAwaitNextAction = 1;
- kDiscontinue = 2;
- }
-
- enum OTADownloadProtocol : ENUM8 {
- kBDXSynchronous = 0;
- kBDXAsynchronous = 1;
- kHttps = 2;
- kVendorSpecific = 3;
- }
-
- enum OTAQueryStatus : ENUM8 {
- kUpdateAvailable = 0;
- kBusy = 1;
- kNotAvailable = 2;
- kDownloadProtocolNotSupported = 3;
+server cluster EthernetNetworkDiagnostics = 55 {
+ enum PHYRateType : ENUM8 {
+ k10m = 0;
+ k100m = 1;
+ k1000m = 2;
+ k25g = 3;
+ k5g = 4;
+ k10g = 5;
+ k40g = 6;
+ k100g = 7;
+ k200g = 8;
+ k400g = 9;
}
+ readonly attribute nullable PHYRateType PHYRate = 0;
+ readonly attribute nullable boolean fullDuplex = 1;
+ readonly attribute int64u packetRxCount = 2;
+ readonly attribute int64u packetTxCount = 3;
+ readonly attribute int64u txErrCount = 4;
+ readonly attribute int64u collisionCount = 5;
+ readonly attribute int64u overrunCount = 6;
+ readonly attribute nullable boolean carrierDetect = 7;
+ readonly attribute int64u timeSinceReset = 8;
+ readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
- request struct QueryImageRequest {
- vendor_id vendorId = 0;
- INT16U productId = 1;
- INT32U softwareVersion = 2;
- OTADownloadProtocol protocolsSupported[] = 3;
- optional INT16U hardwareVersion = 4;
- optional CHAR_STRING location = 5;
- optional BOOLEAN requestorCanConsent = 6;
- optional OCTET_STRING metadataForProvider = 7;
- }
-
- request struct ApplyUpdateRequestRequest {
- OCTET_STRING updateToken = 0;
- INT32U newVersion = 1;
- }
-
- request struct NotifyUpdateAppliedRequest {
- OCTET_STRING updateToken = 0;
- INT32U softwareVersion = 1;
- }
-
- response struct QueryImageResponse {
- OTAQueryStatus status = 0;
- optional INT32U delayedActionTime = 1;
- optional CHAR_STRING imageURI = 2;
- optional INT32U softwareVersion = 3;
- optional CHAR_STRING softwareVersionString = 4;
- optional OCTET_STRING updateToken = 5;
- optional BOOLEAN userConsentNeeded = 6;
- optional OCTET_STRING metadataForRequestor = 7;
- }
-
- response struct ApplyUpdateResponse {
- OTAApplyUpdateAction action = 0;
- INT32U delayedActionTime = 1;
- }
-
- command QueryImage(QueryImageRequest): QueryImageResponse = 0;
- command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2;
- command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4;
+ command ResetCounts(): DefaultSuccess = 0;
}
-server cluster OtaSoftwareUpdateRequestor = 42 {
- enum OTAAnnouncementReason : ENUM8 {
- kSimpleAnnouncement = 0;
- kUpdateAvailable = 1;
- kUrgentUpdateAvailable = 2;
- }
-
- enum OTAChangeReasonEnum : ENUM8 {
- kUnknown = 0;
- kSuccess = 1;
- kFailure = 2;
- kTimeOut = 3;
- kDelayByProvider = 4;
- }
-
- enum OTAUpdateStateEnum : ENUM8 {
- kUnknown = 0;
- kIdle = 1;
- kQuerying = 2;
- kDelayedOnQuery = 3;
- kDownloading = 4;
- kApplying = 5;
- kDelayedOnApply = 6;
- kRollingBack = 7;
- kDelayedOnUserConsent = 8;
- }
-
- struct ProviderLocation {
- node_id providerNodeID = 1;
- endpoint_no endpoint = 2;
- fabric_idx fabricIndex = 254;
- }
-
- info event StateTransition = 0 {
- OTAUpdateStateEnum previousState = 0;
- OTAUpdateStateEnum newState = 1;
- OTAChangeReasonEnum reason = 2;
- nullable INT32U targetSoftwareVersion = 3;
- }
-
- critical event VersionApplied = 1 {
- INT32U softwareVersion = 0;
- INT16U productID = 1;
+server cluster Switch = 59 {
+ info event SwitchLatched = 0 {
+ INT8U newPosition = 0;
}
- info event DownloadError = 2 {
- INT32U softwareVersion = 0;
- INT64U bytesDownloaded = 1;
- nullable INT8U progressPercent = 2;
- nullable INT64S platformCode = 3;
+ info event InitialPress = 1 {
+ INT8U newPosition = 0;
}
- attribute ProviderLocation defaultOtaProviders[] = 0;
- readonly attribute boolean updatePossible = 1;
- readonly attribute OTAUpdateStateEnum updateState = 2;
- readonly attribute nullable int8u updateStateProgress = 3;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AnnounceOtaProviderRequest {
- node_id providerNodeId = 0;
- vendor_id vendorId = 1;
- OTAAnnouncementReason announcementReason = 2;
- optional OCTET_STRING metadataForNode = 3;
- endpoint_no endpoint = 4;
+ info event LongPress = 2 {
+ INT8U newPosition = 0;
}
- command AnnounceOtaProvider(AnnounceOtaProviderRequest): DefaultSuccess = 0;
-}
-
-server cluster OccupancySensing = 1030 {
- readonly attribute bitmap8 occupancy = 0;
- readonly attribute enum8 occupancySensorType = 1;
- readonly attribute bitmap8 occupancySensorTypeBitmap = 2;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster OnOff = 6 {
- enum OnOffDelayedAllOffEffectVariant : enum8 {
- kFadeToOffIn0p8Seconds = 0;
- kNoFade = 1;
- k50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds = 2;
+ info event ShortRelease = 3 {
+ INT8U previousPosition = 0;
}
- enum OnOffDyingLightEffectVariant : enum8 {
- k20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second = 0;
+ info event LongRelease = 4 {
+ INT8U previousPosition = 0;
}
- enum OnOffEffectIdentifier : enum8 {
- kDelayedAllOff = 0;
- kDyingLight = 1;
+ info event MultiPressOngoing = 5 {
+ INT8U newPosition = 0;
+ INT8U currentNumberOfPressesCounted = 1;
}
- enum OnOffStartUpOnOff : ENUM8 {
- kOff = 0;
- kOn = 1;
- kTogglePreviousOnOff = 2;
+ info event MultiPressComplete = 6 {
+ INT8U newPosition = 0;
+ INT8U totalNumberOfPressesCounted = 1;
}
- bitmap OnOffControl : BITMAP8 {
- kAcceptOnlyWhenOn = 0x1;
+}
+
+server cluster AdministratorCommissioning = 60 {
+ enum CommissioningWindowStatus : ENUM8 {
+ kWindowNotOpen = 0;
+ kEnhancedWindowOpen = 1;
+ kBasicWindowOpen = 2;
}
- bitmap OnOffFeature : BITMAP32 {
- kLighting = 0x1;
+ enum StatusCode : ENUM8 {
+ kBusy = 1;
+ kPAKEParameterError = 2;
+ kWindowNotOpen = 3;
}
- 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 int8u windowStatus = 0;
+ readonly attribute fabric_idx adminFabricIndex = 1;
+ readonly attribute int16u adminVendorId = 2;
readonly attribute int16u clusterRevision = 65533;
- request struct OffWithEffectRequest {
- OnOffEffectIdentifier effectId = 0;
- OnOffDelayedAllOffEffectVariant effectVariant = 1;
+ request struct OpenCommissioningWindowRequest {
+ INT16U commissioningTimeout = 0;
+ OCTET_STRING PAKEVerifier = 1;
+ INT16U discriminator = 2;
+ INT32U iterations = 3;
+ OCTET_STRING salt = 4;
}
- request struct OnWithTimedOffRequest {
- OnOffControl onOffControl = 0;
- int16u onTime = 1;
- int16u offWaitTime = 2;
+ request struct OpenBasicCommissioningWindowRequest {
+ INT16U commissioningTimeout = 0;
}
- 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;
+ timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0;
+ timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1;
+ timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2;
}
server cluster OperationalCredentials = 62 {
@@ -1237,6 +1204,7 @@ server cluster OperationalCredentials = 62 {
kInvalidNOC = 3;
kMissingCsr = 4;
kTableFull = 5;
+ kInvalidAdminSubject = 6;
kInsufficientPrivilege = 8;
kFabricConflict = 9;
kLabelConflict = 10;
@@ -1244,17 +1212,17 @@ server cluster OperationalCredentials = 62 {
}
struct NOCStruct {
- OCTET_STRING noc = 1;
- nullable OCTET_STRING icac = 2;
+ octet_string noc = 1;
+ nullable octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
struct FabricDescriptor {
- OCTET_STRING<65> rootPublicKey = 1;
- INT16U vendorId = 2;
- FABRIC_ID fabricId = 3;
- NODE_ID nodeId = 4;
- CHAR_STRING<32> label = 5;
+ octet_string<65> rootPublicKey = 1;
+ vendor_id vendorId = 2;
+ fabric_id fabricId = 3;
+ node_id nodeId = 4;
+ char_string<32> label = 5;
fabric_idx fabricIndex = 254;
}
@@ -1276,14 +1244,15 @@ server cluster OperationalCredentials = 62 {
request struct CSRRequestRequest {
OCTET_STRING CSRNonce = 0;
+ optional boolean isForUpdateNOC = 1;
}
request struct AddNOCRequest {
OCTET_STRING NOCValue = 0;
optional OCTET_STRING ICACValue = 1;
OCTET_STRING IPKValue = 2;
- NODE_ID caseAdminNode = 3;
- INT16U adminVendorId = 4;
+ Int64u caseAdminSubject = 3;
+ VENDOR_ID adminVendorId = 4;
}
request struct UpdateNOCRequest {
@@ -1303,25 +1272,21 @@ server cluster OperationalCredentials = 62 {
OCTET_STRING rootCertificate = 0;
}
- request struct RemoveTrustedRootCertificateRequest {
- OCTET_STRING trustedRootIdentifier = 0;
- }
-
- response struct AttestationResponse {
+ response struct AttestationResponse = 1 {
OCTET_STRING attestationElements = 0;
OCTET_STRING signature = 1;
}
- response struct CertificateChainResponse {
+ response struct CertificateChainResponse = 3 {
OCTET_STRING certificate = 0;
}
- response struct CSRResponse {
+ response struct CSRResponse = 5 {
OCTET_STRING NOCSRElements = 0;
OCTET_STRING attestationSignature = 1;
}
- response struct NOCResponse {
+ response struct NOCResponse = 8 {
OperationalCertStatus statusCode = 0;
optional fabric_idx fabricIndex = 1;
optional CHAR_STRING debugText = 2;
@@ -1335,346 +1300,693 @@ server cluster OperationalCredentials = 62 {
command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9;
command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10;
command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11;
- command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12;
}
-server cluster SoftwareDiagnostics = 52 {
- struct ThreadMetrics {
- INT64U id = 0;
- CHAR_STRING<8> name = 1;
- INT32U stackFreeCurrent = 2;
- INT32U stackFreeMinimum = 3;
- INT32U stackSize = 4;
+server cluster GroupKeyManagement = 63 {
+ enum GroupKeySecurityPolicy : ENUM8 {
+ kTrustFirst = 0;
+ kCacheAndSync = 1;
}
- info event SoftwareFault = 0 {
- SoftwareFaultStruct softwareFault = 0;
+ struct GroupKeyMapStruct {
+ group_id groupId = 1;
+ int16u groupKeySetID = 2;
+ fabric_idx fabricIndex = 254;
}
- readonly attribute ThreadMetrics threadMetrics[] = 0;
- readonly attribute int64u currentHeapFree = 1;
- readonly attribute int64u currentHeapUsed = 2;
- readonly attribute int64u currentHeapHighWatermark = 3;
- readonly attribute bitmap32 featureMap = 65532;
+ struct GroupInfoMapStruct {
+ group_id groupId = 1;
+ endpoint_no endpoints[] = 2;
+ optional char_string<16> groupName = 3;
+ fabric_idx fabricIndex = 254;
+ }
+
+ struct GroupKeySetStruct {
+ int16u groupKeySetID = 0;
+ GroupKeySecurityPolicy groupKeySecurityPolicy = 1;
+ nullable octet_string<16> epochKey0 = 2;
+ nullable epoch_us epochStartTime0 = 3;
+ nullable octet_string<16> epochKey1 = 4;
+ nullable epoch_us epochStartTime1 = 5;
+ nullable octet_string<16> epochKey2 = 6;
+ nullable epoch_us epochStartTime2 = 7;
+ }
+
+ attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0;
+ readonly attribute GroupInfoMapStruct groupTable[] = 1;
+ readonly attribute int16u maxGroupsPerFabric = 2;
+ readonly attribute int16u maxGroupKeysPerFabric = 3;
readonly attribute int16u clusterRevision = 65533;
- command ResetWatermarks(): DefaultSuccess = 0;
+ request struct KeySetWriteRequest {
+ GroupKeySetStruct groupKeySet = 0;
+ }
+
+ request struct KeySetReadRequest {
+ INT16U groupKeySetID = 0;
+ }
+
+ request struct KeySetRemoveRequest {
+ INT16U groupKeySetID = 0;
+ }
+
+ request struct KeySetReadAllIndicesRequest {
+ INT16U groupKeySetIDs[] = 0;
+ }
+
+ response struct KeySetReadResponse = 2 {
+ GroupKeySetStruct groupKeySet = 0;
+ }
+
+ response struct KeySetReadAllIndicesResponse = 5 {
+ INT16U groupKeySetIDs[] = 0;
+ }
+
+ command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0;
+ command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1;
+ command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3;
+ command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4;
}
-server cluster Switch = 59 {
- info event SwitchLatched = 0 {
- INT8U newPosition = 0;
+server cluster FixedLabel = 64 {
+ readonly attribute LabelStruct labelList[] = 0;
+ readonly attribute int16u clusterRevision = 65533;
+}
+
+server cluster UserLabel = 65 {
+ attribute access(write: manage) LabelStruct labelList[] = 0;
+ readonly attribute int16u clusterRevision = 65533;
+}
+
+server cluster ColorControl = 768 {
+ enum ColorLoopAction : ENUM8 {
+ kDeactivate = 0;
+ kActivateFromColorLoopStartEnhancedHue = 1;
+ kActivateFromEnhancedCurrentHue = 2;
}
- info event InitialPress = 1 {
- INT8U newPosition = 0;
+ enum ColorLoopDirection : ENUM8 {
+ kDecrementHue = 0;
+ kIncrementHue = 1;
}
- info event LongPress = 2 {
- INT8U newPosition = 0;
+ enum ColorMode : ENUM8 {
+ kCurrentHueAndCurrentSaturation = 0;
+ kCurrentXAndCurrentY = 1;
+ kColorTemperature = 2;
}
- info event ShortRelease = 3 {
- INT8U previousPosition = 0;
+ enum HueDirection : ENUM8 {
+ kShortestDistance = 0;
+ kLongestDistance = 1;
+ kUp = 2;
+ kDown = 3;
}
- info event LongRelease = 4 {
- INT8U previousPosition = 0;
+ enum HueMoveMode : ENUM8 {
+ kStop = 0;
+ kUp = 1;
+ kDown = 3;
}
- info event MultiPressOngoing = 5 {
- INT8U newPosition = 0;
- INT8U currentNumberOfPressesCounted = 1;
+ enum HueStepMode : ENUM8 {
+ kUp = 1;
+ kDown = 3;
}
- info event MultiPressComplete = 6 {
- INT8U newPosition = 0;
- INT8U totalNumberOfPressesCounted = 1;
+ enum SaturationMoveMode : ENUM8 {
+ kStop = 0;
+ kUp = 1;
+ kDown = 3;
}
-}
+ enum SaturationStepMode : ENUM8 {
+ kUp = 1;
+ kDown = 3;
+ }
-server cluster ThreadNetworkDiagnostics = 53 {
- enum NetworkFault : ENUM8 {
- kUnspecified = 0;
- kLinkDown = 1;
- kHardwareFailure = 2;
- kNetworkJammed = 3;
+ bitmap ColorCapabilities : BITMAP16 {
+ kHueSaturationSupported = 0x1;
+ kEnhancedHueSupported = 0x2;
+ kColorLoopSupported = 0x4;
+ kXYAttributesSupported = 0x8;
+ kColorTemperatureSupported = 0x10;
}
- enum RoutingRole : ENUM8 {
- kUnspecified = 0;
- kUnassigned = 1;
- kSleepyEndDevice = 2;
- kEndDevice = 3;
- kReed = 4;
- kRouter = 5;
- kLeader = 6;
+ bitmap ColorControlFeature : BITMAP32 {
+ kHueAndSaturation = 0x1;
+ kEnhancedHue = 0x2;
+ kColorLoop = 0x4;
+ kXy = 0x8;
+ kColorTemperature = 0x10;
+ }
+
+ bitmap ColorLoopUpdateFlags : BITMAP8 {
+ kUpdateAction = 0x1;
+ kUpdateDirection = 0x2;
+ kUpdateTime = 0x4;
+ kUpdateStartHue = 0x8;
+ }
+
+ readonly attribute int8u currentHue = 0;
+ readonly attribute int8u currentSaturation = 1;
+ readonly attribute int16u remainingTime = 2;
+ readonly attribute int16u currentX = 3;
+ readonly attribute int16u currentY = 4;
+ readonly attribute int16u colorTemperature = 7;
+ readonly attribute enum8 colorMode = 8;
+ attribute bitmap8 options = 15;
+ readonly attribute nullable int8u numberOfPrimaries = 16;
+ readonly attribute int16u enhancedCurrentHue = 16384;
+ readonly attribute enum8 enhancedColorMode = 16385;
+ readonly attribute int8u colorLoopActive = 16386;
+ readonly attribute int8u colorLoopDirection = 16387;
+ readonly attribute int16u colorLoopTime = 16388;
+ readonly attribute int16u colorLoopStartEnhancedHue = 16389;
+ readonly attribute int16u colorLoopStoredEnhancedHue = 16390;
+ readonly attribute bitmap16 colorCapabilities = 16394;
+ readonly attribute int16u colorTempPhysicalMinMireds = 16395;
+ readonly attribute int16u colorTempPhysicalMaxMireds = 16396;
+ readonly attribute int16u coupleColorTempToLevelMinMireds = 16397;
+ attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400;
+ readonly attribute bitmap32 featureMap = 65532;
+ readonly attribute int16u clusterRevision = 65533;
+
+ request struct MoveToHueRequest {
+ INT8U hue = 0;
+ HueDirection direction = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
+ }
+
+ request struct MoveHueRequest {
+ HueMoveMode moveMode = 0;
+ INT8U rate = 1;
+ BITMAP8 optionsMask = 2;
+ BITMAP8 optionsOverride = 3;
+ }
+
+ request struct StepHueRequest {
+ HueStepMode stepMode = 0;
+ INT8U stepSize = 1;
+ INT8U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
+ }
+
+ request struct MoveToSaturationRequest {
+ INT8U saturation = 0;
+ INT16U transitionTime = 1;
+ BITMAP8 optionsMask = 2;
+ BITMAP8 optionsOverride = 3;
}
- enum ThreadConnectionStatus : ENUM8 {
- kConnected = 0;
- kNotConnected = 1;
+ request struct MoveSaturationRequest {
+ SaturationMoveMode moveMode = 0;
+ INT8U rate = 1;
+ BITMAP8 optionsMask = 2;
+ BITMAP8 optionsOverride = 3;
}
- bitmap ThreadNetworkDiagnosticsFeature : BITMAP32 {
- kPacketCounts = 0x1;
- kErrorCounts = 0x2;
- kMLECounts = 0x4;
- kMACCounts = 0x8;
+ request struct StepSaturationRequest {
+ SaturationStepMode stepMode = 0;
+ INT8U stepSize = 1;
+ INT8U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
}
- struct NeighborTable {
- INT64U extAddress = 0;
- INT32U age = 1;
- INT16U rloc16 = 2;
- INT32U linkFrameCounter = 3;
- INT32U mleFrameCounter = 4;
- INT8U lqi = 5;
- INT8S averageRssi = 6;
- INT8S lastRssi = 7;
- INT8U frameErrorRate = 8;
- INT8U messageErrorRate = 9;
- BOOLEAN rxOnWhenIdle = 10;
- BOOLEAN fullThreadDevice = 11;
- BOOLEAN fullNetworkData = 12;
- BOOLEAN isChild = 13;
+ request struct MoveToHueAndSaturationRequest {
+ INT8U hue = 0;
+ INT8U saturation = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
}
- struct RouteTable {
- INT64U extAddress = 0;
- INT16U rloc16 = 1;
- INT8U routerId = 2;
- INT8U nextHop = 3;
- INT8U pathCost = 4;
- INT8U LQIIn = 5;
- INT8U LQIOut = 6;
- INT8U age = 7;
- BOOLEAN allocated = 8;
- BOOLEAN linkEstablished = 9;
+ request struct MoveToColorRequest {
+ INT16U colorX = 0;
+ INT16U colorY = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
}
- struct SecurityPolicy {
- INT16U rotationTime = 0;
- BITMAP16 flags = 1;
+ request struct MoveColorRequest {
+ INT16S rateX = 0;
+ INT16S rateY = 1;
+ BITMAP8 optionsMask = 2;
+ BITMAP8 optionsOverride = 3;
}
- struct OperationalDatasetComponents {
- BOOLEAN activeTimestampPresent = 0;
- BOOLEAN pendingTimestampPresent = 1;
- BOOLEAN masterKeyPresent = 2;
- BOOLEAN networkNamePresent = 3;
- BOOLEAN extendedPanIdPresent = 4;
- BOOLEAN meshLocalPrefixPresent = 5;
- BOOLEAN delayPresent = 6;
- BOOLEAN panIdPresent = 7;
- BOOLEAN channelPresent = 8;
- BOOLEAN pskcPresent = 9;
- BOOLEAN securityPolicyPresent = 10;
- BOOLEAN channelMaskPresent = 11;
+ request struct StepColorRequest {
+ INT16S stepX = 0;
+ INT16S stepY = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
}
- info event ConnectionStatus = 0 {
- ThreadConnectionStatus connectionStatus = 0;
+ request struct MoveToColorTemperatureRequest {
+ INT16U colorTemperature = 0;
+ INT16U transitionTime = 1;
+ BITMAP8 optionsMask = 2;
+ BITMAP8 optionsOverride = 3;
}
- readonly attribute int16u channel = 0;
- readonly attribute enum8 routingRole = 1;
- readonly attribute char_string<16> networkName = 2;
- readonly attribute int16u panId = 3;
- readonly attribute int64u extendedPanId = 4;
- readonly attribute octet_string<17> meshLocalPrefix = 5;
- readonly attribute int64u overrunCount = 6;
- readonly attribute NeighborTable neighborTableList[] = 7;
- readonly attribute RouteTable routeTableList[] = 8;
- readonly attribute int32u partitionId = 9;
- readonly attribute int8u weighting = 10;
- readonly attribute int8u dataVersion = 11;
- readonly attribute int8u stableDataVersion = 12;
- readonly attribute int8u leaderRouterId = 13;
- readonly attribute int16u detachedRoleCount = 14;
- readonly attribute int16u childRoleCount = 15;
- readonly attribute int16u routerRoleCount = 16;
- readonly attribute int16u leaderRoleCount = 17;
- readonly attribute int16u attachAttemptCount = 18;
- readonly attribute int16u partitionIdChangeCount = 19;
- readonly attribute int16u betterPartitionAttachAttemptCount = 20;
- readonly attribute int16u parentChangeCount = 21;
- readonly attribute int32u txTotalCount = 22;
- readonly attribute int32u txUnicastCount = 23;
- readonly attribute int32u txBroadcastCount = 24;
- readonly attribute int32u txAckRequestedCount = 25;
- readonly attribute int32u txAckedCount = 26;
- readonly attribute int32u txNoAckRequestedCount = 27;
- readonly attribute int32u txDataCount = 28;
- readonly attribute int32u txDataPollCount = 29;
- readonly attribute int32u txBeaconCount = 30;
- readonly attribute int32u txBeaconRequestCount = 31;
- readonly attribute int32u txOtherCount = 32;
- readonly attribute int32u txRetryCount = 33;
- readonly attribute int32u txDirectMaxRetryExpiryCount = 34;
- readonly attribute int32u txIndirectMaxRetryExpiryCount = 35;
- readonly attribute int32u txErrCcaCount = 36;
- readonly attribute int32u txErrAbortCount = 37;
- readonly attribute int32u txErrBusyChannelCount = 38;
- readonly attribute int32u rxTotalCount = 39;
- readonly attribute int32u rxUnicastCount = 40;
- readonly attribute int32u rxBroadcastCount = 41;
- readonly attribute int32u rxDataCount = 42;
- readonly attribute int32u rxDataPollCount = 43;
- readonly attribute int32u rxBeaconCount = 44;
- readonly attribute int32u rxBeaconRequestCount = 45;
- readonly attribute int32u rxOtherCount = 46;
- readonly attribute int32u rxAddressFilteredCount = 47;
- readonly attribute int32u rxDestAddrFilteredCount = 48;
- readonly attribute int32u rxDuplicatedCount = 49;
- readonly attribute int32u rxErrNoFrameCount = 50;
- readonly attribute int32u rxErrUnknownNeighborCount = 51;
- readonly attribute int32u rxErrInvalidSrcAddrCount = 52;
- readonly attribute int32u rxErrSecCount = 53;
- readonly attribute int32u rxErrFcsCount = 54;
- readonly attribute int32u rxErrOtherCount = 55;
- readonly attribute int64u activeTimestamp = 56;
- readonly attribute int64u pendingTimestamp = 57;
- readonly attribute int32u delay = 58;
- readonly attribute SecurityPolicy securityPolicy[] = 59;
- readonly attribute octet_string<4> channelMask = 60;
- readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61;
- readonly attribute NetworkFault activeNetworkFaultsList[] = 62;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- command ResetCounts(): DefaultSuccess = 0;
-}
-
-server cluster TimeFormatLocalization = 44 {
- enum CalendarType : ENUM8 {
- kBuddhist = 0;
- kChinese = 1;
- kCoptic = 2;
- kEthiopian = 3;
- kGregorian = 4;
- kHebrew = 5;
- kIndian = 6;
- kIslamic = 7;
- kJapanese = 8;
- kKorean = 9;
- kPersian = 10;
- kTaiwanese = 11;
+ request struct EnhancedMoveToHueRequest {
+ INT16U enhancedHue = 0;
+ HueDirection direction = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
}
- enum HourFormat : ENUM8 {
- k12hr = 0;
- k24hr = 1;
+ request struct EnhancedMoveHueRequest {
+ HueMoveMode moveMode = 0;
+ INT16U rate = 1;
+ BITMAP8 optionsMask = 2;
+ BITMAP8 optionsOverride = 3;
}
- attribute HourFormat hourFormat = 0;
- attribute CalendarType activeCalendarType = 1;
- readonly attribute CalendarType supportedCalendarTypes[] = 2;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster UserLabel = 65 {
- attribute access(write: manage) LabelStruct labelList[] = 0;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster WiFiNetworkDiagnostics = 54 {
- enum AssociationFailureCause : ENUM8 {
- kUnknown = 0;
- kAssociationFailed = 1;
- kAuthenticationFailed = 2;
- kSsidNotFound = 3;
+ request struct EnhancedStepHueRequest {
+ HueStepMode stepMode = 0;
+ INT16U stepSize = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
}
- enum SecurityType : ENUM8 {
- kUnspecified = 0;
- kNone = 1;
- kWep = 2;
- kWpa = 3;
- kWpa2 = 4;
- kWpa3 = 5;
+ request struct EnhancedMoveToHueAndSaturationRequest {
+ INT16U enhancedHue = 0;
+ INT8U saturation = 1;
+ INT16U transitionTime = 2;
+ BITMAP8 optionsMask = 3;
+ BITMAP8 optionsOverride = 4;
}
- enum WiFiConnectionStatus : ENUM8 {
- kConnected = 0;
- kNotConnected = 1;
+ request struct ColorLoopSetRequest {
+ ColorLoopUpdateFlags updateFlags = 0;
+ ColorLoopAction action = 1;
+ ColorLoopDirection direction = 2;
+ INT16U time = 3;
+ INT16U startHue = 4;
+ BITMAP8 optionsMask = 5;
+ BITMAP8 optionsOverride = 6;
}
- enum WiFiVersionType : ENUM8 {
- k80211a = 0;
- k80211b = 1;
- k80211g = 2;
- k80211n = 3;
- k80211ac = 4;
- k80211ax = 5;
+ request struct StopMoveStepRequest {
+ BITMAP8 optionsMask = 0;
+ BITMAP8 optionsOverride = 1;
}
- info event Disconnection = 0 {
- INT16U reasonCode = 0;
+ request struct MoveColorTemperatureRequest {
+ HueMoveMode moveMode = 0;
+ INT16U rate = 1;
+ INT16U colorTemperatureMinimumMireds = 2;
+ INT16U colorTemperatureMaximumMireds = 3;
+ BITMAP8 optionsMask = 4;
+ BITMAP8 optionsOverride = 5;
}
- info event AssociationFailure = 1 {
- AssociationFailureCause associationFailure = 0;
- INT16U status = 1;
+ request struct StepColorTemperatureRequest {
+ HueStepMode stepMode = 0;
+ INT16U stepSize = 1;
+ INT16U transitionTime = 2;
+ INT16U colorTemperatureMinimumMireds = 3;
+ INT16U colorTemperatureMaximumMireds = 4;
+ BITMAP8 optionsMask = 5;
+ BITMAP8 optionsOverride = 6;
}
- info event ConnectionStatus = 2 {
- WiFiConnectionStatus connectionStatus = 0;
- }
+ command MoveToHue(MoveToHueRequest): DefaultSuccess = 0;
+ command MoveHue(MoveHueRequest): DefaultSuccess = 1;
+ command StepHue(StepHueRequest): DefaultSuccess = 2;
+ command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3;
+ command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4;
+ command StepSaturation(StepSaturationRequest): DefaultSuccess = 5;
+ command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6;
+ command MoveToColor(MoveToColorRequest): DefaultSuccess = 7;
+ command MoveColor(MoveColorRequest): DefaultSuccess = 8;
+ command StepColor(StepColorRequest): DefaultSuccess = 9;
+ command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10;
+ command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64;
+ command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65;
+ command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66;
+ command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67;
+ command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68;
+ command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71;
+ command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75;
+ command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76;
+}
- readonly attribute nullable octet_string<6> bssid = 0;
- readonly attribute nullable SecurityType securityType = 1;
- readonly attribute nullable WiFiVersionType wiFiVersion = 2;
- readonly attribute nullable int16u channelNumber = 3;
- readonly attribute nullable int8s rssi = 4;
- readonly attribute int32u beaconLostCount = 5;
- readonly attribute int32u beaconRxCount = 6;
- readonly attribute int32u packetMulticastRxCount = 7;
- readonly attribute int32u packetMulticastTxCount = 8;
- readonly attribute int32u packetUnicastRxCount = 9;
- readonly attribute int32u packetUnicastTxCount = 10;
- readonly attribute int64u currentMaxRate = 11;
- readonly attribute int64u overrunCount = 12;
- readonly attribute bitmap32 featureMap = 65532;
+server cluster OccupancySensing = 1030 {
+ readonly attribute bitmap8 occupancy = 0;
+ readonly attribute enum8 occupancySensorType = 1;
+ readonly attribute bitmap8 occupancySensorTypeBitmap = 2;
readonly attribute int16u clusterRevision = 65533;
-
- command ResetCounts(): DefaultSuccess = 0;
}
-
endpoint 0 {
- server cluster AccessControl;
- server cluster AdministratorCommissioning;
- server cluster Basic;
- server cluster Descriptor;
- server cluster DiagnosticLogs;
- server cluster EthernetNetworkDiagnostics;
- server cluster FixedLabel;
- server cluster GeneralCommissioning;
- server cluster GeneralDiagnostics;
- server cluster GroupKeyManagement;
- server cluster Groups;
- server cluster LocalizationConfiguration;
- server cluster NetworkCommissioning;
+ device type rootdevice = 22;
binding cluster OtaSoftwareUpdateProvider;
- server cluster OtaSoftwareUpdateRequestor;
- server cluster OperationalCredentials;
- server cluster SoftwareDiagnostics;
- server cluster Switch;
- server cluster ThreadNetworkDiagnostics;
- server cluster TimeFormatLocalization;
- server cluster UserLabel;
- server cluster WiFiNetworkDiagnostics;
-}
+ server cluster Groups {
+ ram attribute nameSupport;
+ ram attribute clusterRevision default = 4;
+ }
+
+ server cluster Descriptor {
+ callback attribute deviceList;
+ callback attribute serverList;
+ callback attribute clientList;
+ callback attribute partsList;
+ callback attribute clusterRevision default = 1;
+ }
+
+ server cluster AccessControl {
+ callback attribute acl;
+ callback attribute extension;
+ callback attribute subjectsPerAccessControlEntry default = 4;
+ callback attribute targetsPerAccessControlEntry default = 3;
+ callback attribute accessControlEntriesPerFabric default = 3;
+ callback attribute attributeList;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster Basic {
+ callback attribute dataModelRevision default = 10;
+ callback attribute vendorName;
+ callback attribute vendorID;
+ callback attribute productName;
+ callback attribute productID;
+ persist attribute nodeLabel;
+ callback attribute location default = "XX";
+ callback attribute hardwareVersion;
+ callback attribute hardwareVersionString;
+ callback attribute softwareVersion;
+ callback attribute softwareVersionString;
+ callback attribute manufacturingDate default = "20210614123456ZZ";
+ callback attribute partNumber;
+ callback attribute productURL;
+ callback attribute productLabel;
+ callback attribute serialNumber;
+ persist attribute localConfigDisabled;
+ ram attribute reachable default = 1;
+ callback attribute uniqueID;
+ callback attribute capabilityMinima;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster OtaSoftwareUpdateRequestor {
+ callback attribute defaultOtaProviders;
+ ram attribute updatePossible default = 1;
+ ram attribute updateState;
+ ram attribute updateStateProgress;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster LocalizationConfiguration {
+ callback attribute supportedLocales default = en-US;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster TimeFormatLocalization {
+ persist attribute hourFormat;
+ persist attribute activeCalendarType;
+ callback attribute supportedCalendarTypes;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster GeneralCommissioning {
+ ram attribute breadcrumb;
+ callback attribute basicCommissioningInfo;
+ callback attribute regulatoryConfig;
+ callback attribute locationCapability;
+ callback attribute supportsConcurrentConnection default = 1;
+ ram attribute featureMap default = 6;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster NetworkCommissioning {
+ ram attribute maxNetworks;
+ callback attribute networks;
+ ram attribute scanMaxTimeSeconds;
+ ram attribute connectMaxTimeSeconds;
+ ram attribute interfaceEnabled;
+ ram attribute lastNetworkingStatus;
+ ram attribute lastNetworkID;
+ ram attribute lastConnectErrorValue;
+ ram attribute featureMap default = 2;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster DiagnosticLogs {
+ }
+
+ server cluster GeneralDiagnostics {
+ callback attribute networkInterfaces;
+ callback attribute rebootCount;
+ callback attribute upTime;
+ callback attribute totalOperationalHours;
+ callback attribute bootReasons;
+ callback attribute activeHardwareFaults;
+ callback attribute activeRadioFaults;
+ callback attribute activeNetworkFaults;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster SoftwareDiagnostics {
+ callback attribute threadMetrics;
+ callback attribute currentHeapFree;
+ callback attribute currentHeapUsed;
+ callback attribute currentHeapHighWatermark;
+ ram attribute featureMap default = 1;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster ThreadNetworkDiagnostics {
+ callback attribute channel;
+ callback attribute routingRole;
+ callback attribute networkName;
+ callback attribute panId;
+ callback attribute extendedPanId;
+ callback attribute meshLocalPrefix;
+ callback attribute overrunCount;
+ callback attribute neighborTableList;
+ callback attribute routeTableList;
+ callback attribute partitionId;
+ callback attribute weighting;
+ callback attribute dataVersion;
+ callback attribute stableDataVersion;
+ callback attribute leaderRouterId;
+ callback attribute detachedRoleCount;
+ callback attribute childRoleCount;
+ callback attribute routerRoleCount;
+ callback attribute leaderRoleCount;
+ callback attribute attachAttemptCount;
+ callback attribute partitionIdChangeCount;
+ callback attribute betterPartitionAttachAttemptCount;
+ callback attribute parentChangeCount;
+ callback attribute txTotalCount;
+ callback attribute txUnicastCount;
+ callback attribute txBroadcastCount;
+ callback attribute txAckRequestedCount;
+ callback attribute txAckedCount;
+ callback attribute txNoAckRequestedCount;
+ callback attribute txDataCount;
+ callback attribute txDataPollCount;
+ callback attribute txBeaconCount;
+ callback attribute txBeaconRequestCount;
+ callback attribute txOtherCount;
+ callback attribute txRetryCount;
+ callback attribute txDirectMaxRetryExpiryCount;
+ callback attribute txIndirectMaxRetryExpiryCount;
+ callback attribute txErrCcaCount;
+ callback attribute txErrAbortCount;
+ callback attribute txErrBusyChannelCount;
+ callback attribute rxTotalCount;
+ callback attribute rxUnicastCount;
+ callback attribute rxBroadcastCount;
+ callback attribute rxDataCount;
+ callback attribute rxDataPollCount;
+ callback attribute rxBeaconCount;
+ callback attribute rxBeaconRequestCount;
+ callback attribute rxOtherCount;
+ callback attribute rxAddressFilteredCount;
+ callback attribute rxDestAddrFilteredCount;
+ callback attribute rxDuplicatedCount;
+ callback attribute rxErrNoFrameCount;
+ callback attribute rxErrUnknownNeighborCount;
+ callback attribute rxErrInvalidSrcAddrCount;
+ callback attribute rxErrSecCount;
+ callback attribute rxErrFcsCount;
+ callback attribute rxErrOtherCount;
+ callback attribute activeTimestamp;
+ callback attribute pendingTimestamp;
+ callback attribute delay;
+ callback attribute securityPolicy;
+ callback attribute channelMask;
+ callback attribute operationalDatasetComponents;
+ callback attribute activeNetworkFaultsList;
+ ram attribute featureMap default = 0x000F;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster WiFiNetworkDiagnostics {
+ callback attribute bssid;
+ callback attribute securityType;
+ callback attribute wiFiVersion;
+ callback attribute channelNumber;
+ callback attribute rssi;
+ callback attribute beaconLostCount;
+ callback attribute beaconRxCount;
+ callback attribute packetMulticastRxCount;
+ callback attribute packetMulticastTxCount;
+ callback attribute packetUnicastRxCount;
+ callback attribute packetUnicastTxCount;
+ callback attribute currentMaxRate;
+ callback attribute overrunCount;
+ ram attribute featureMap default = 3;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster EthernetNetworkDiagnostics {
+ callback attribute PHYRate;
+ callback attribute fullDuplex;
+ callback attribute packetRxCount;
+ callback attribute packetTxCount;
+ callback attribute txErrCount;
+ callback attribute collisionCount;
+ callback attribute overrunCount;
+ callback attribute carrierDetect;
+ callback attribute timeSinceReset;
+ ram attribute featureMap default = 3;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster Switch {
+ }
+
+ server cluster AdministratorCommissioning {
+ callback attribute windowStatus;
+ callback attribute adminFabricIndex default = 1;
+ callback attribute adminVendorId;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster OperationalCredentials {
+ callback attribute NOCs;
+ callback attribute fabrics;
+ callback attribute supportedFabrics;
+ callback attribute commissionedFabrics;
+ callback attribute trustedRootCertificates;
+ callback attribute currentFabricIndex;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster GroupKeyManagement {
+ callback attribute groupKeyMap;
+ callback attribute groupTable;
+ callback attribute maxGroupsPerFabric;
+ callback attribute maxGroupKeysPerFabric;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster FixedLabel {
+ callback attribute labelList;
+ ram attribute clusterRevision default = 1;
+ }
+
+ server cluster UserLabel {
+ callback attribute labelList;
+ ram attribute clusterRevision default = 1;
+ }
+}
endpoint 1 {
- server cluster ColorControl;
- server cluster Descriptor;
- server cluster Groups;
- server cluster Identify;
- server cluster LevelControl;
- server cluster OccupancySensing;
- server cluster OnOff;
+ device type dimmablelight = 257;
+
+ server cluster Identify {
+ ram attribute identifyTime;
+ ram attribute identifyType;
+ ram attribute clusterRevision default = 4;
+ }
+
+ server cluster Groups {
+ ram attribute nameSupport;
+ ram attribute clusterRevision default = 4;
+ }
+
+ server cluster OnOff {
+ persist attribute onOff;
+ ram attribute globalSceneControl default = 0x01;
+ ram attribute onTime;
+ ram attribute offWaitTime;
+ persist attribute startUpOnOff default = 0xFF;
+ ram attribute featureMap default = 1;
+ ram attribute clusterRevision default = 4;
+ }
+
+ server cluster LevelControl {
+ persist attribute currentLevel default = 0x01;
+ ram attribute remainingTime;
+ ram attribute minLevel;
+ ram attribute maxLevel default = 0xFE;
+ ram attribute currentFrequency;
+ ram attribute minFrequency;
+ ram attribute maxFrequency;
+ ram attribute options;
+ ram attribute onOffTransitionTime;
+ ram attribute onLevel default = 0xFF;
+ ram attribute onTransitionTime;
+ ram attribute offTransitionTime;
+ ram attribute defaultMoveRate default = 50;
+ persist attribute startUpCurrentLevel default = 255;
+ ram attribute featureMap default = 3;
+ ram attribute clusterRevision default = 5;
+ }
+
+ server cluster Descriptor {
+ callback attribute deviceList;
+ callback attribute serverList;
+ callback attribute clientList;
+ callback attribute partsList;
+ callback attribute clusterRevision default = 1;
+ }
+
+ server cluster ColorControl {
+ ram attribute currentHue;
+ ram attribute currentSaturation;
+ ram attribute remainingTime;
+ ram attribute currentX default = 0x616B;
+ ram attribute currentY default = 0x607D;
+ ram attribute colorTemperature default = 0x00FA;
+ ram attribute colorMode default = 0x01;
+ ram attribute options;
+ ram attribute numberOfPrimaries;
+ ram attribute enhancedCurrentHue;
+ ram attribute enhancedColorMode default = 0x01;
+ ram attribute colorLoopActive;
+ ram attribute colorLoopDirection;
+ ram attribute colorLoopTime default = 0x0019;
+ ram attribute colorLoopStartEnhancedHue default = 0x2300;
+ ram attribute colorLoopStoredEnhancedHue;
+ ram attribute colorCapabilities;
+ ram attribute colorTempPhysicalMinMireds;
+ ram attribute colorTempPhysicalMaxMireds default = 0xFEFF;
+ ram attribute coupleColorTempToLevelMinMireds;
+ ram attribute startUpColorTemperatureMireds;
+ ram attribute featureMap default = 0x1F;
+ ram attribute clusterRevision default = 5;
+ }
+
+ server cluster OccupancySensing {
+ ram attribute occupancy;
+ ram attribute occupancySensorType;
+ ram attribute occupancySensorTypeBitmap;
+ ram attribute clusterRevision default = 3;
+ }
}
+
diff --git a/zzz_generated/sl_template/Clusters.matter b/zzz_generated/sl_template/Clusters.matter
deleted file mode 100644
index 14db35da28420a..00000000000000
--- a/zzz_generated/sl_template/Clusters.matter
+++ /dev/null
@@ -1,1444 +0,0 @@
-// This IDL was generated automatically by ZAP.
-// It is for view/code review purposes only.
-
-struct LabelStruct {
- CHAR_STRING<16> label = 0;
- CHAR_STRING<16> value = 1;
-}
-
-server cluster AccessControl = 31 {
- enum AuthMode : ENUM8 {
- kPase = 1;
- kCase = 2;
- kGroup = 3;
- }
-
- enum ChangeTypeEnum : ENUM8 {
- kChanged = 0;
- kAdded = 1;
- kRemoved = 2;
- }
-
- enum Privilege : ENUM8 {
- kView = 1;
- kProxyView = 2;
- kOperate = 3;
- kManage = 4;
- kAdminister = 5;
- }
-
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable INT64U subjects[] = 3;
- nullable Target targets[] = 4;
- fabric_idx fabricIndex = 254;
- }
-
- struct Target {
- nullable cluster_id cluster = 0;
- nullable endpoint_no endpoint = 1;
- nullable devtype_id deviceType = 2;
- }
-
- struct ExtensionEntry {
- OCTET_STRING<128> data = 1;
- fabric_idx fabricIndex = 254;
- }
-
- info event access(read: administer) AccessControlEntryChanged = 0 {
- nullable node_id adminNodeID = 1;
- nullable INT16U adminPasscodeID = 2;
- ChangeTypeEnum changeType = 3;
- nullable AccessControlEntry latestValue = 4;
- fabric_idx adminFabricIndex = 254;
- }
-
- info event access(read: administer) AccessControlExtensionChanged = 1 {
- nullable node_id adminNodeID = 1;
- nullable INT16U adminPasscodeID = 2;
- ChangeTypeEnum changeType = 3;
- nullable ExtensionEntry latestValue = 4;
- fabric_idx adminFabricIndex = 254;
- }
-
- attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0;
- attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1;
- readonly attribute int16u subjectsPerAccessControlEntry = 2;
- readonly attribute int16u targetsPerAccessControlEntry = 3;
- readonly attribute int16u accessControlEntriesPerFabric = 4;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster AdministratorCommissioning = 60 {
- enum CommissioningWindowStatus : ENUM8 {
- kWindowNotOpen = 0;
- kEnhancedWindowOpen = 1;
- kBasicWindowOpen = 2;
- }
-
- enum StatusCode : ENUM8 {
- kBusy = 1;
- kPAKEParameterError = 2;
- kWindowNotOpen = 3;
- }
-
- readonly attribute int8u windowStatus = 0;
- readonly attribute fabric_idx adminFabricIndex = 1;
- readonly attribute int16u adminVendorId = 2;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct OpenCommissioningWindowRequest {
- INT16U commissioningTimeout = 0;
- OCTET_STRING PAKEVerifier = 1;
- INT16U discriminator = 2;
- INT32U iterations = 3;
- OCTET_STRING salt = 4;
- }
-
- request struct OpenBasicCommissioningWindowRequest {
- INT16U commissioningTimeout = 0;
- }
-
- timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0;
- timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1;
- timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2;
-}
-
-server cluster Basic = 40 {
- struct CapabilityMinimaStruct {
- int16u caseSessionsPerFabric = 0;
- int16u subscriptionsPerFabric = 1;
- }
-
- critical event StartUp = 0 {
- INT32U softwareVersion = 0;
- }
-
- critical event ShutDown = 1 {
- }
-
- info event Leave = 2 {
- }
-
- info event ReachableChanged = 3 {
- boolean reachableNewValue = 0;
- }
-
- readonly attribute int16u dataModelRevision = 0;
- readonly attribute char_string<32> vendorName = 1;
- readonly attribute vendor_id vendorID = 2;
- readonly attribute char_string<32> productName = 3;
- readonly attribute int16u productID = 4;
- attribute access(write: manage) char_string<32> nodeLabel = 5;
- attribute access(write: administer) char_string<2> location = 6;
- readonly attribute int16u hardwareVersion = 7;
- readonly attribute char_string<64> hardwareVersionString = 8;
- readonly attribute int32u softwareVersion = 9;
- readonly attribute char_string<64> softwareVersionString = 10;
- readonly attribute char_string<16> manufacturingDate = 11;
- readonly attribute char_string<32> partNumber = 12;
- readonly attribute long_char_string<256> productURL = 13;
- readonly attribute char_string<64> productLabel = 14;
- readonly attribute char_string<32> serialNumber = 15;
- attribute access(write: manage) boolean localConfigDisabled = 16;
- readonly attribute boolean reachable = 17;
- readonly attribute char_string<32> uniqueID = 18;
- readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster Descriptor = 29 {
- struct DeviceType {
- DEVTYPE_ID type = 0;
- INT16U revision = 1;
- }
-
- readonly attribute DeviceType deviceList[] = 0;
- readonly attribute CLUSTER_ID serverList[] = 1;
- readonly attribute CLUSTER_ID clientList[] = 2;
- readonly attribute ENDPOINT_NO partsList[] = 3;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster DiagnosticLogs = 50 {
- enum LogsIntent : ENUM8 {
- kEndUserSupport = 0;
- kNetworkDiag = 1;
- kCrashLogs = 2;
- }
-
- enum LogsStatus : ENUM8 {
- kSuccess = 0;
- kExhausted = 1;
- kNoLogs = 2;
- kBusy = 3;
- kDenied = 4;
- }
-
- enum LogsTransferProtocol : ENUM8 {
- kResponsePayload = 0;
- kBdx = 1;
- }
-
-
- request struct RetrieveLogsRequestRequest {
- LogsIntent intent = 0;
- LogsTransferProtocol requestedProtocol = 1;
- OCTET_STRING transferFileDesignator = 2;
- }
-
- command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0;
-}
-
-server cluster EthernetNetworkDiagnostics = 55 {
- enum PHYRateType : ENUM8 {
- k10m = 0;
- k100m = 1;
- k1000m = 2;
- k25g = 3;
- k5g = 4;
- k10g = 5;
- k40g = 6;
- k100g = 7;
- k200g = 8;
- k400g = 9;
- }
-
- readonly attribute nullable PHYRateType PHYRate = 0;
- readonly attribute nullable boolean fullDuplex = 1;
- readonly attribute int64u packetRxCount = 2;
- readonly attribute int64u packetTxCount = 3;
- readonly attribute int64u txErrCount = 4;
- readonly attribute int64u collisionCount = 5;
- readonly attribute int64u overrunCount = 6;
- readonly attribute nullable boolean carrierDetect = 7;
- readonly attribute int64u timeSinceReset = 8;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- command ResetCounts(): DefaultSuccess = 0;
-}
-
-server cluster FixedLabel = 64 {
- readonly attribute LabelStruct labelList[] = 0;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster GeneralCommissioning = 48 {
- enum CommissioningError : ENUM8 {
- kOk = 0;
- kValueOutsideRange = 1;
- kInvalidAuthentication = 2;
- kNoFailSafe = 3;
- kBusyWithOtherAdmin = 4;
- }
-
- enum RegulatoryLocationType : ENUM8 {
- kIndoor = 0;
- kOutdoor = 1;
- kIndoorOutdoor = 2;
- }
-
- struct BasicCommissioningInfo {
- INT16U failSafeExpiryLengthSeconds = 0;
- }
-
- attribute access(write: administer) int64u breadcrumb = 0;
- readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1;
- readonly attribute RegulatoryLocationType regulatoryConfig = 2;
- readonly attribute RegulatoryLocationType locationCapability = 3;
- readonly attribute boolean supportsConcurrentConnection = 4;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct ArmFailSafeRequest {
- INT16U expiryLengthSeconds = 0;
- INT64U breadcrumb = 1;
- }
-
- request struct SetRegulatoryConfigRequest {
- RegulatoryLocationType newRegulatoryConfig = 0;
- CHAR_STRING countryCode = 1;
- INT64U breadcrumb = 2;
- }
-
- response struct ArmFailSafeResponse = 1 {
- CommissioningError errorCode = 0;
- CHAR_STRING debugText = 1;
- }
-
- response struct SetRegulatoryConfigResponse = 3 {
- CommissioningError errorCode = 0;
- CHAR_STRING debugText = 1;
- }
-
- response struct CommissioningCompleteResponse = 5 {
- CommissioningError errorCode = 0;
- CHAR_STRING debugText = 1;
- }
-
- command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0;
- command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2;
- command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4;
-}
-
-server cluster GeneralDiagnostics = 51 {
- enum BootReasonType : ENUM8 {
- kUnspecified = 0;
- kPowerOnReboot = 1;
- kBrownOutReset = 2;
- kSoftwareWatchdogReset = 3;
- kHardwareWatchdogReset = 4;
- kSoftwareUpdateCompleted = 5;
- kSoftwareReset = 6;
- }
-
- enum HardwareFaultType : ENUM8 {
- kUnspecified = 0;
- kRadio = 1;
- kSensor = 2;
- kResettableOverTemp = 3;
- kNonResettableOverTemp = 4;
- kPowerSource = 5;
- kVisualDisplayFault = 6;
- kAudioOutputFault = 7;
- kUserInterfaceFault = 8;
- kNonVolatileMemoryError = 9;
- kTamperDetected = 10;
- }
-
- enum InterfaceType : ENUM8 {
- kUnspecified = 0;
- kWiFi = 1;
- kEthernet = 2;
- kCellular = 3;
- kThread = 4;
- }
-
- enum NetworkFaultType : ENUM8 {
- kUnspecified = 0;
- kHardwareFailure = 1;
- kNetworkJammed = 2;
- kConnectionFailed = 3;
- }
-
- enum RadioFaultType : ENUM8 {
- kUnspecified = 0;
- kWiFiFault = 1;
- kCellularFault = 2;
- kThreadFault = 3;
- kNFCFault = 4;
- kBLEFault = 5;
- kEthernetFault = 6;
- }
-
- struct NetworkInterfaceType {
- CHAR_STRING<32> name = 0;
- BOOLEAN isOperational = 1;
- nullable BOOLEAN offPremiseServicesReachableIPv4 = 2;
- nullable BOOLEAN offPremiseServicesReachableIPv6 = 3;
- OCTET_STRING<8> hardwareAddress = 4;
- OCTET_STRING IPv4Addresses[] = 5;
- OCTET_STRING IPv6Addresses[] = 6;
- InterfaceType type = 7;
- }
-
- critical event HardwareFaultChange = 0 {
- HardwareFaultType current[] = 0;
- HardwareFaultType previous[] = 1;
- }
-
- critical event RadioFaultChange = 1 {
- RadioFaultType current[] = 0;
- RadioFaultType previous[] = 1;
- }
-
- critical event NetworkFaultChange = 2 {
- NetworkFaultType current[] = 0;
- NetworkFaultType previous[] = 1;
- }
-
- critical event BootReason = 3 {
- BootReasonType bootReason = 0;
- }
-
- readonly attribute NetworkInterfaceType networkInterfaces[] = 0;
- readonly attribute int16u rebootCount = 1;
- readonly attribute int64u upTime = 2;
- readonly attribute int32u totalOperationalHours = 3;
- readonly attribute enum8 bootReasons = 4;
- readonly attribute ENUM8 activeHardwareFaults[] = 5;
- readonly attribute ENUM8 activeRadioFaults[] = 6;
- readonly attribute ENUM8 activeNetworkFaults[] = 7;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster GroupKeyManagement = 63 {
- enum GroupKeySecurityPolicy : ENUM8 {
- kTrustFirst = 0;
- kCacheAndSync = 1;
- }
-
- struct GroupKeyMapStruct {
- group_id groupId = 1;
- INT16U groupKeySetID = 2;
- fabric_idx fabricIndex = 254;
- }
-
- struct GroupInfoMapStruct {
- group_id groupId = 1;
- endpoint_no endpoints[] = 2;
- optional CHAR_STRING<16> groupName = 3;
- fabric_idx fabricIndex = 254;
- }
-
- struct GroupKeySetStruct {
- INT16U groupKeySetID = 0;
- GroupKeySecurityPolicy groupKeySecurityPolicy = 1;
- nullable OCTET_STRING<16> epochKey0 = 2;
- nullable epoch_us epochStartTime0 = 3;
- nullable OCTET_STRING<16> epochKey1 = 4;
- nullable epoch_us epochStartTime1 = 5;
- nullable OCTET_STRING<16> epochKey2 = 6;
- nullable epoch_us epochStartTime2 = 7;
- }
-
- attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0;
- readonly attribute GroupInfoMapStruct groupTable[] = 1;
- readonly attribute int16u maxGroupsPerFabric = 2;
- readonly attribute int16u maxGroupKeysPerFabric = 3;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct KeySetWriteRequest {
- GroupKeySetStruct groupKeySet = 0;
- }
-
- request struct KeySetReadRequest {
- INT16U groupKeySetID = 0;
- }
-
- request struct KeySetRemoveRequest {
- INT16U groupKeySetID = 0;
- }
-
- request struct KeySetReadAllIndicesRequest {
- INT16U groupKeySetIDs[] = 0;
- }
-
- response struct KeySetReadResponse = 2 {
- GroupKeySetStruct groupKeySet = 0;
- }
-
- response struct KeySetReadAllIndicesResponse = 5 {
- INT16U groupKeySetIDs[] = 0;
- }
-
- command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0;
- command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1;
- command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3;
- command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4;
-}
-
-server cluster Groups = 4 {
- readonly attribute bitmap8 nameSupport = 0;
- 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;
- }
-
- command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0;
- command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
- command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2;
- command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3;
- command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4;
- command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
-}
-
-server cluster LocalizationConfiguration = 43 {
- attribute char_string<35> activeLocale = 1;
- readonly attribute CHAR_STRING supportedLocales[] = 2;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster NetworkCommissioning = 49 {
- enum NetworkCommissioningStatus : ENUM8 {
- kSuccess = 0;
- kOutOfRange = 1;
- kBoundsExceeded = 2;
- kNetworkIDNotFound = 3;
- kDuplicateNetworkID = 4;
- kNetworkNotFound = 5;
- kRegulatoryError = 6;
- kAuthFailure = 7;
- kUnsupportedSecurity = 8;
- kOtherConnectionFailure = 9;
- kIPV6Failed = 10;
- kIPBindFailed = 11;
- kUnknownError = 12;
- }
-
- enum WiFiBand : ENUM8 {
- k2g4 = 0;
- k3g65 = 1;
- k5g = 2;
- k6g = 3;
- k60g = 4;
- }
-
- bitmap NetworkCommissioningFeature : BITMAP32 {
- kWiFiNetworkInterface = 0x1;
- kThreadNetworkInterface = 0x2;
- kEthernetNetworkInterface = 0x4;
- }
-
- bitmap WiFiSecurity : BITMAP8 {
- kUnencrypted = 0x1;
- kWepPersonal = 0x2;
- kWpaPersonal = 0x4;
- kWpa2Personal = 0x8;
- kWpa3Personal = 0x10;
- }
-
- struct NetworkInfo {
- OCTET_STRING<32> networkID = 0;
- BOOLEAN connected = 1;
- }
-
- struct WiFiInterfaceScanResult {
- WiFiSecurity security = 0;
- OCTET_STRING<32> ssid = 1;
- OCTET_STRING<6> bssid = 2;
- INT16U channel = 3;
- WiFiBand wiFiBand = 4;
- INT8S rssi = 5;
- }
-
- struct ThreadInterfaceScanResult {
- INT16U panId = 0;
- INT64U extendedPanId = 1;
- CHAR_STRING<16> networkName = 2;
- INT16U channel = 3;
- INT8U version = 4;
- OCTET_STRING<8> extendedAddress = 5;
- INT8S rssi = 6;
- INT8U lqi = 7;
- }
-
- readonly attribute access(read: administer) int8u maxNetworks = 0;
- readonly attribute access(read: administer) NetworkInfo networks[] = 1;
- readonly attribute int8u scanMaxTimeSeconds = 2;
- readonly attribute int8u connectMaxTimeSeconds = 3;
- attribute access(write: administer) boolean interfaceEnabled = 4;
- readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5;
- readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6;
- readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct ScanNetworksRequest {
- optional nullable OCTET_STRING ssid = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct AddOrUpdateWiFiNetworkRequest {
- OCTET_STRING ssid = 0;
- OCTET_STRING credentials = 1;
- optional INT64U breadcrumb = 2;
- }
-
- request struct AddOrUpdateThreadNetworkRequest {
- OCTET_STRING operationalDataset = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct RemoveNetworkRequest {
- OCTET_STRING networkID = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct ConnectNetworkRequest {
- OCTET_STRING networkID = 0;
- optional INT64U breadcrumb = 1;
- }
-
- request struct ReorderNetworkRequest {
- OCTET_STRING networkID = 0;
- INT8U networkIndex = 1;
- optional INT64U breadcrumb = 2;
- }
-
- response struct ScanNetworksResponse = 1 {
- NetworkCommissioningStatus networkingStatus = 0;
- optional CHAR_STRING debugText = 1;
- optional WiFiInterfaceScanResult wiFiScanResults[] = 2;
- optional ThreadInterfaceScanResult threadScanResults[] = 3;
- }
-
- response struct NetworkConfigResponse = 5 {
- NetworkCommissioningStatus networkingStatus = 0;
- optional CHAR_STRING debugText = 1;
- optional INT8U networkIndex = 2;
- }
-
- response struct ConnectNetworkResponse = 7 {
- NetworkCommissioningStatus networkingStatus = 0;
- optional CHAR_STRING debugText = 1;
- nullable INT32S errorValue = 2;
- }
-
- command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0;
- command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2;
- command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3;
- command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4;
- command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6;
- command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8;
-}
-
-client cluster OtaSoftwareUpdateProvider = 41 {
- enum OTAApplyUpdateAction : ENUM8 {
- kProceed = 0;
- kAwaitNextAction = 1;
- kDiscontinue = 2;
- }
-
- enum OTADownloadProtocol : ENUM8 {
- kBDXSynchronous = 0;
- kBDXAsynchronous = 1;
- kHttps = 2;
- kVendorSpecific = 3;
- }
-
- enum OTAQueryStatus : ENUM8 {
- kUpdateAvailable = 0;
- kBusy = 1;
- kNotAvailable = 2;
- kDownloadProtocolNotSupported = 3;
- }
-
- readonly attribute int16u clusterRevision = 65533;
-
- request struct QueryImageRequest {
- vendor_id vendorId = 0;
- INT16U productId = 1;
- INT32U softwareVersion = 2;
- OTADownloadProtocol protocolsSupported[] = 3;
- optional INT16U hardwareVersion = 4;
- optional CHAR_STRING location = 5;
- optional BOOLEAN requestorCanConsent = 6;
- optional OCTET_STRING metadataForProvider = 7;
- }
-
- request struct ApplyUpdateRequestRequest {
- OCTET_STRING updateToken = 0;
- INT32U newVersion = 1;
- }
-
- request struct NotifyUpdateAppliedRequest {
- OCTET_STRING updateToken = 0;
- INT32U softwareVersion = 1;
- }
-
- response struct QueryImageResponse = 1 {
- OTAQueryStatus status = 0;
- optional INT32U delayedActionTime = 1;
- optional CHAR_STRING imageURI = 2;
- optional INT32U softwareVersion = 3;
- optional CHAR_STRING softwareVersionString = 4;
- optional OCTET_STRING updateToken = 5;
- optional BOOLEAN userConsentNeeded = 6;
- optional OCTET_STRING metadataForRequestor = 7;
- }
-
- response struct ApplyUpdateResponse = 3 {
- OTAApplyUpdateAction action = 0;
- INT32U delayedActionTime = 1;
- }
-
- command QueryImage(QueryImageRequest): QueryImageResponse = 0;
- command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2;
- command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4;
-}
-
-server cluster OtaSoftwareUpdateRequestor = 42 {
- enum OTAAnnouncementReason : ENUM8 {
- kSimpleAnnouncement = 0;
- kUpdateAvailable = 1;
- kUrgentUpdateAvailable = 2;
- }
-
- enum OTAChangeReasonEnum : ENUM8 {
- kUnknown = 0;
- kSuccess = 1;
- kFailure = 2;
- kTimeOut = 3;
- kDelayByProvider = 4;
- }
-
- enum OTAUpdateStateEnum : ENUM8 {
- kUnknown = 0;
- kIdle = 1;
- kQuerying = 2;
- kDelayedOnQuery = 3;
- kDownloading = 4;
- kApplying = 5;
- kDelayedOnApply = 6;
- kRollingBack = 7;
- kDelayedOnUserConsent = 8;
- }
-
- struct ProviderLocation {
- node_id providerNodeID = 1;
- endpoint_no endpoint = 2;
- fabric_idx fabricIndex = 254;
- }
-
- info event StateTransition = 0 {
- OTAUpdateStateEnum previousState = 0;
- OTAUpdateStateEnum newState = 1;
- OTAChangeReasonEnum reason = 2;
- nullable INT32U targetSoftwareVersion = 3;
- }
-
- critical event VersionApplied = 1 {
- INT32U softwareVersion = 0;
- INT16U productID = 1;
- }
-
- info event DownloadError = 2 {
- INT32U softwareVersion = 0;
- INT64U bytesDownloaded = 1;
- nullable INT8U progressPercent = 2;
- nullable INT64S platformCode = 3;
- }
-
- attribute ProviderLocation defaultOtaProviders[] = 0;
- readonly attribute boolean updatePossible = 1;
- readonly attribute OTAUpdateStateEnum updateState = 2;
- readonly attribute nullable int8u updateStateProgress = 3;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AnnounceOtaProviderRequest {
- node_id providerNodeId = 0;
- vendor_id vendorId = 1;
- OTAAnnouncementReason announcementReason = 2;
- optional OCTET_STRING metadataForNode = 3;
- endpoint_no endpoint = 4;
- }
-
- command AnnounceOtaProvider(AnnounceOtaProviderRequest): DefaultSuccess = 0;
-}
-
-server cluster OperationalCredentials = 62 {
- enum OperationalCertStatus : ENUM8 {
- kSuccess = 0;
- kInvalidPublicKey = 1;
- kInvalidNodeOpId = 2;
- kInvalidNOC = 3;
- kMissingCsr = 4;
- kTableFull = 5;
- kInsufficientPrivilege = 8;
- kFabricConflict = 9;
- kLabelConflict = 10;
- kInvalidFabricIndex = 11;
- }
-
- struct NOCStruct {
- OCTET_STRING noc = 1;
- nullable OCTET_STRING icac = 2;
- fabric_idx fabricIndex = 254;
- }
-
- struct FabricDescriptor {
- OCTET_STRING<65> rootPublicKey = 1;
- INT16U vendorId = 2;
- FABRIC_ID fabricId = 3;
- NODE_ID nodeId = 4;
- CHAR_STRING<32> label = 5;
- fabric_idx fabricIndex = 254;
- }
-
- readonly attribute access(read: administer) NOCStruct NOCs[] = 0;
- readonly attribute FabricDescriptor fabrics[] = 1;
- readonly attribute int8u supportedFabrics = 2;
- readonly attribute int8u commissionedFabrics = 3;
- readonly attribute OCTET_STRING trustedRootCertificates[] = 4;
- readonly attribute fabric_idx currentFabricIndex = 5;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AttestationRequestRequest {
- OCTET_STRING attestationNonce = 0;
- }
-
- request struct CertificateChainRequestRequest {
- INT8U certificateType = 0;
- }
-
- request struct CSRRequestRequest {
- OCTET_STRING CSRNonce = 0;
- }
-
- request struct AddNOCRequest {
- OCTET_STRING NOCValue = 0;
- optional OCTET_STRING ICACValue = 1;
- OCTET_STRING IPKValue = 2;
- NODE_ID caseAdminNode = 3;
- INT16U adminVendorId = 4;
- }
-
- request struct UpdateNOCRequest {
- OCTET_STRING NOCValue = 0;
- optional OCTET_STRING ICACValue = 1;
- }
-
- request struct UpdateFabricLabelRequest {
- CHAR_STRING label = 0;
- }
-
- request struct RemoveFabricRequest {
- fabric_idx fabricIndex = 0;
- }
-
- request struct AddTrustedRootCertificateRequest {
- OCTET_STRING rootCertificate = 0;
- }
-
- request struct RemoveTrustedRootCertificateRequest {
- OCTET_STRING trustedRootIdentifier = 0;
- }
-
- response struct AttestationResponse = 1 {
- OCTET_STRING attestationElements = 0;
- OCTET_STRING signature = 1;
- }
-
- response struct CertificateChainResponse = 3 {
- OCTET_STRING certificate = 0;
- }
-
- response struct CSRResponse = 5 {
- OCTET_STRING NOCSRElements = 0;
- OCTET_STRING attestationSignature = 1;
- }
-
- response struct NOCResponse = 8 {
- OperationalCertStatus statusCode = 0;
- optional fabric_idx fabricIndex = 1;
- optional CHAR_STRING debugText = 2;
- }
-
- command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0;
- command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2;
- command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4;
- command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6;
- command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7;
- command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9;
- command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10;
- command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11;
- command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12;
-}
-
-server cluster SoftwareDiagnostics = 52 {
- struct ThreadMetrics {
- INT64U id = 0;
- CHAR_STRING<8> name = 1;
- INT32U stackFreeCurrent = 2;
- INT32U stackFreeMinimum = 3;
- INT32U stackSize = 4;
- }
-
- info event SoftwareFault = 0 {
- SoftwareFaultStruct softwareFault = 0;
- }
-
- readonly attribute ThreadMetrics threadMetrics[] = 0;
- readonly attribute int64u currentHeapFree = 1;
- readonly attribute int64u currentHeapUsed = 2;
- readonly attribute int64u currentHeapHighWatermark = 3;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- command ResetWatermarks(): DefaultSuccess = 0;
-}
-
-server cluster Switch = 59 {
- info event SwitchLatched = 0 {
- INT8U newPosition = 0;
- }
-
- info event InitialPress = 1 {
- INT8U newPosition = 0;
- }
-
- info event LongPress = 2 {
- INT8U newPosition = 0;
- }
-
- info event ShortRelease = 3 {
- INT8U previousPosition = 0;
- }
-
- info event LongRelease = 4 {
- INT8U previousPosition = 0;
- }
-
- info event MultiPressOngoing = 5 {
- INT8U newPosition = 0;
- INT8U currentNumberOfPressesCounted = 1;
- }
-
- info event MultiPressComplete = 6 {
- INT8U newPosition = 0;
- INT8U totalNumberOfPressesCounted = 1;
- }
-
-}
-
-server cluster ThreadNetworkDiagnostics = 53 {
- enum NetworkFault : ENUM8 {
- kUnspecified = 0;
- kLinkDown = 1;
- kHardwareFailure = 2;
- kNetworkJammed = 3;
- }
-
- enum RoutingRole : ENUM8 {
- kUnspecified = 0;
- kUnassigned = 1;
- kSleepyEndDevice = 2;
- kEndDevice = 3;
- kReed = 4;
- kRouter = 5;
- kLeader = 6;
- }
-
- enum ThreadConnectionStatus : ENUM8 {
- kConnected = 0;
- kNotConnected = 1;
- }
-
- bitmap ThreadNetworkDiagnosticsFeature : BITMAP32 {
- kPacketCounts = 0x1;
- kErrorCounts = 0x2;
- kMLECounts = 0x4;
- kMACCounts = 0x8;
- }
-
- struct NeighborTable {
- INT64U extAddress = 0;
- INT32U age = 1;
- INT16U rloc16 = 2;
- INT32U linkFrameCounter = 3;
- INT32U mleFrameCounter = 4;
- INT8U lqi = 5;
- INT8S averageRssi = 6;
- INT8S lastRssi = 7;
- INT8U frameErrorRate = 8;
- INT8U messageErrorRate = 9;
- BOOLEAN rxOnWhenIdle = 10;
- BOOLEAN fullThreadDevice = 11;
- BOOLEAN fullNetworkData = 12;
- BOOLEAN isChild = 13;
- }
-
- struct RouteTable {
- INT64U extAddress = 0;
- INT16U rloc16 = 1;
- INT8U routerId = 2;
- INT8U nextHop = 3;
- INT8U pathCost = 4;
- INT8U LQIIn = 5;
- INT8U LQIOut = 6;
- INT8U age = 7;
- BOOLEAN allocated = 8;
- BOOLEAN linkEstablished = 9;
- }
-
- struct SecurityPolicy {
- INT16U rotationTime = 0;
- BITMAP16 flags = 1;
- }
-
- struct OperationalDatasetComponents {
- BOOLEAN activeTimestampPresent = 0;
- BOOLEAN pendingTimestampPresent = 1;
- BOOLEAN masterKeyPresent = 2;
- BOOLEAN networkNamePresent = 3;
- BOOLEAN extendedPanIdPresent = 4;
- BOOLEAN meshLocalPrefixPresent = 5;
- BOOLEAN delayPresent = 6;
- BOOLEAN panIdPresent = 7;
- BOOLEAN channelPresent = 8;
- BOOLEAN pskcPresent = 9;
- BOOLEAN securityPolicyPresent = 10;
- BOOLEAN channelMaskPresent = 11;
- }
-
- info event ConnectionStatus = 0 {
- ThreadConnectionStatus connectionStatus = 0;
- }
-
- readonly attribute int16u channel = 0;
- readonly attribute enum8 routingRole = 1;
- readonly attribute char_string<16> networkName = 2;
- readonly attribute int16u panId = 3;
- readonly attribute int64u extendedPanId = 4;
- readonly attribute octet_string<17> meshLocalPrefix = 5;
- readonly attribute int64u overrunCount = 6;
- readonly attribute NeighborTable neighborTableList[] = 7;
- readonly attribute RouteTable routeTableList[] = 8;
- readonly attribute int32u partitionId = 9;
- readonly attribute int8u weighting = 10;
- readonly attribute int8u dataVersion = 11;
- readonly attribute int8u stableDataVersion = 12;
- readonly attribute int8u leaderRouterId = 13;
- readonly attribute int16u detachedRoleCount = 14;
- readonly attribute int16u childRoleCount = 15;
- readonly attribute int16u routerRoleCount = 16;
- readonly attribute int16u leaderRoleCount = 17;
- readonly attribute int16u attachAttemptCount = 18;
- readonly attribute int16u partitionIdChangeCount = 19;
- readonly attribute int16u betterPartitionAttachAttemptCount = 20;
- readonly attribute int16u parentChangeCount = 21;
- readonly attribute int32u txTotalCount = 22;
- readonly attribute int32u txUnicastCount = 23;
- readonly attribute int32u txBroadcastCount = 24;
- readonly attribute int32u txAckRequestedCount = 25;
- readonly attribute int32u txAckedCount = 26;
- readonly attribute int32u txNoAckRequestedCount = 27;
- readonly attribute int32u txDataCount = 28;
- readonly attribute int32u txDataPollCount = 29;
- readonly attribute int32u txBeaconCount = 30;
- readonly attribute int32u txBeaconRequestCount = 31;
- readonly attribute int32u txOtherCount = 32;
- readonly attribute int32u txRetryCount = 33;
- readonly attribute int32u txDirectMaxRetryExpiryCount = 34;
- readonly attribute int32u txIndirectMaxRetryExpiryCount = 35;
- readonly attribute int32u txErrCcaCount = 36;
- readonly attribute int32u txErrAbortCount = 37;
- readonly attribute int32u txErrBusyChannelCount = 38;
- readonly attribute int32u rxTotalCount = 39;
- readonly attribute int32u rxUnicastCount = 40;
- readonly attribute int32u rxBroadcastCount = 41;
- readonly attribute int32u rxDataCount = 42;
- readonly attribute int32u rxDataPollCount = 43;
- readonly attribute int32u rxBeaconCount = 44;
- readonly attribute int32u rxBeaconRequestCount = 45;
- readonly attribute int32u rxOtherCount = 46;
- readonly attribute int32u rxAddressFilteredCount = 47;
- readonly attribute int32u rxDestAddrFilteredCount = 48;
- readonly attribute int32u rxDuplicatedCount = 49;
- readonly attribute int32u rxErrNoFrameCount = 50;
- readonly attribute int32u rxErrUnknownNeighborCount = 51;
- readonly attribute int32u rxErrInvalidSrcAddrCount = 52;
- readonly attribute int32u rxErrSecCount = 53;
- readonly attribute int32u rxErrFcsCount = 54;
- readonly attribute int32u rxErrOtherCount = 55;
- readonly attribute int64u activeTimestamp = 56;
- readonly attribute int64u pendingTimestamp = 57;
- readonly attribute int32u delay = 58;
- readonly attribute SecurityPolicy securityPolicy[] = 59;
- readonly attribute octet_string<4> channelMask = 60;
- readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61;
- readonly attribute NetworkFault activeNetworkFaultsList[] = 62;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- command ResetCounts(): DefaultSuccess = 0;
-}
-
-server cluster TimeFormatLocalization = 44 {
- enum CalendarType : ENUM8 {
- kBuddhist = 0;
- kChinese = 1;
- kCoptic = 2;
- kEthiopian = 3;
- kGregorian = 4;
- kHebrew = 5;
- kIndian = 6;
- kIslamic = 7;
- kJapanese = 8;
- kKorean = 9;
- kPersian = 10;
- kTaiwanese = 11;
- }
-
- enum HourFormat : ENUM8 {
- k12hr = 0;
- k24hr = 1;
- }
-
- attribute HourFormat hourFormat = 0;
- attribute CalendarType activeCalendarType = 1;
- readonly attribute CalendarType supportedCalendarTypes[] = 2;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster UserLabel = 65 {
- attribute access(write: manage) LabelStruct labelList[] = 0;
- readonly attribute int16u clusterRevision = 65533;
-}
-
-server cluster WiFiNetworkDiagnostics = 54 {
- enum AssociationFailureCause : ENUM8 {
- kUnknown = 0;
- kAssociationFailed = 1;
- kAuthenticationFailed = 2;
- kSsidNotFound = 3;
- }
-
- enum SecurityType : ENUM8 {
- kUnspecified = 0;
- kNone = 1;
- kWep = 2;
- kWpa = 3;
- kWpa2 = 4;
- kWpa3 = 5;
- }
-
- enum WiFiConnectionStatus : ENUM8 {
- kConnected = 0;
- kNotConnected = 1;
- }
-
- enum WiFiVersionType : ENUM8 {
- k80211a = 0;
- k80211b = 1;
- k80211g = 2;
- k80211n = 3;
- k80211ac = 4;
- k80211ax = 5;
- }
-
- info event Disconnection = 0 {
- INT16U reasonCode = 0;
- }
-
- info event AssociationFailure = 1 {
- AssociationFailureCause associationFailure = 0;
- INT16U status = 1;
- }
-
- info event ConnectionStatus = 2 {
- WiFiConnectionStatus connectionStatus = 0;
- }
-
- readonly attribute nullable octet_string<6> bssid = 0;
- readonly attribute nullable SecurityType securityType = 1;
- readonly attribute nullable WiFiVersionType wiFiVersion = 2;
- readonly attribute nullable int16u channelNumber = 3;
- readonly attribute nullable int8s rssi = 4;
- readonly attribute int32u beaconLostCount = 5;
- readonly attribute int32u beaconRxCount = 6;
- readonly attribute int32u packetMulticastRxCount = 7;
- readonly attribute int32u packetMulticastTxCount = 8;
- readonly attribute int32u packetUnicastRxCount = 9;
- readonly attribute int32u packetUnicastTxCount = 10;
- readonly attribute int64u currentMaxRate = 11;
- readonly attribute int64u overrunCount = 12;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- command ResetCounts(): DefaultSuccess = 0;
-}
-
-
-endpoint 0 {
- binding cluster OtaSoftwareUpdateProvider;
-
- server cluster Groups {
- ram attribute nameSupport;
- ram attribute clusterRevision default = 4;
- }
-
- server cluster Descriptor {
- callback attribute deviceList;
- callback attribute serverList;
- callback attribute clientList;
- callback attribute partsList;
- callback attribute clusterRevision default = 1;
- }
-
- server cluster AccessControl {
- callback attribute acl;
- callback attribute extension;
- callback attribute subjectsPerAccessControlEntry default = 4;
- callback attribute targetsPerAccessControlEntry default = 3;
- callback attribute accessControlEntriesPerFabric default = 3;
- callback attribute attributeList;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster Basic {
- callback attribute dataModelRevision default = 10;
- callback attribute vendorName;
- callback attribute vendorID;
- callback attribute productName;
- callback attribute productID;
- persist attribute nodeLabel;
- callback attribute location default = "XX";
- callback attribute hardwareVersion;
- callback attribute hardwareVersionString;
- callback attribute softwareVersion;
- callback attribute softwareVersionString;
- callback attribute manufacturingDate default = "20210614123456ZZ";
- callback attribute partNumber;
- callback attribute productURL;
- callback attribute productLabel;
- callback attribute serialNumber;
- persist attribute localConfigDisabled;
- ram attribute reachable default = 1;
- callback attribute uniqueID;
- callback attribute capabilityMinima;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster OtaSoftwareUpdateRequestor {
- callback attribute defaultOtaProviders;
- ram attribute updatePossible default = 1;
- ram attribute updateState;
- ram attribute updateStateProgress;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster LocalizationConfiguration {
- persist attribute activeLocale default = "en-US";
- callback attribute supportedLocales;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster TimeFormatLocalization {
- persist attribute hourFormat;
- persist attribute activeCalendarType;
- callback attribute supportedCalendarTypes;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster GeneralCommissioning {
- ram attribute breadcrumb;
- callback attribute basicCommissioningInfo;
- callback attribute regulatoryConfig;
- callback attribute locationCapability;
- callback attribute supportsConcurrentConnection default = 1;
- ram attribute featureMap default = 6;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster NetworkCommissioning {
- ram attribute maxNetworks;
- callback attribute networks;
- ram attribute scanMaxTimeSeconds;
- ram attribute connectMaxTimeSeconds;
- ram attribute interfaceEnabled;
- ram attribute lastNetworkingStatus;
- ram attribute lastNetworkID;
- ram attribute lastConnectErrorValue;
- ram attribute featureMap default = 2;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster DiagnosticLogs {
- }
-
- server cluster GeneralDiagnostics {
- callback attribute networkInterfaces;
- callback attribute rebootCount;
- callback attribute upTime;
- callback attribute totalOperationalHours;
- callback attribute bootReasons;
- callback attribute activeHardwareFaults;
- callback attribute activeRadioFaults;
- callback attribute activeNetworkFaults;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster SoftwareDiagnostics {
- callback attribute threadMetrics;
- callback attribute currentHeapFree;
- callback attribute currentHeapUsed;
- callback attribute currentHeapHighWatermark;
- ram attribute featureMap default = 1;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster ThreadNetworkDiagnostics {
- ram attribute channel;
- ram attribute routingRole;
- ram attribute networkName;
- ram attribute panId;
- ram attribute extendedPanId;
- ram attribute meshLocalPrefix;
- ram attribute overrunCount;
- callback attribute neighborTableList;
- callback attribute routeTableList;
- ram attribute partitionId;
- ram attribute weighting;
- ram attribute dataVersion;
- ram attribute stableDataVersion;
- ram attribute leaderRouterId;
- ram attribute detachedRoleCount;
- ram attribute childRoleCount;
- ram attribute routerRoleCount;
- ram attribute leaderRoleCount;
- ram attribute attachAttemptCount;
- ram attribute partitionIdChangeCount;
- ram attribute betterPartitionAttachAttemptCount;
- ram attribute parentChangeCount;
- ram attribute txTotalCount;
- ram attribute txUnicastCount;
- ram attribute txBroadcastCount;
- ram attribute txAckRequestedCount;
- ram attribute txAckedCount;
- ram attribute txNoAckRequestedCount;
- ram attribute txDataCount;
- ram attribute txDataPollCount;
- ram attribute txBeaconCount;
- ram attribute txBeaconRequestCount;
- ram attribute txOtherCount;
- ram attribute txRetryCount;
- ram attribute txDirectMaxRetryExpiryCount;
- ram attribute txIndirectMaxRetryExpiryCount;
- ram attribute txErrCcaCount;
- ram attribute txErrAbortCount;
- ram attribute txErrBusyChannelCount;
- ram attribute rxTotalCount;
- ram attribute rxUnicastCount;
- ram attribute rxBroadcastCount;
- ram attribute rxDataCount;
- ram attribute rxDataPollCount;
- ram attribute rxBeaconCount;
- ram attribute rxBeaconRequestCount;
- ram attribute rxOtherCount;
- ram attribute rxAddressFilteredCount;
- ram attribute rxDestAddrFilteredCount;
- ram attribute rxDuplicatedCount;
- ram attribute rxErrNoFrameCount;
- ram attribute rxErrUnknownNeighborCount;
- ram attribute rxErrInvalidSrcAddrCount;
- ram attribute rxErrSecCount;
- ram attribute rxErrFcsCount;
- ram attribute rxErrOtherCount;
- ram attribute activeTimestamp;
- ram attribute pendingTimestamp;
- ram attribute delay;
- callback attribute securityPolicy;
- ram attribute channelMask;
- callback attribute operationalDatasetComponents;
- callback attribute activeNetworkFaultsList;
- ram attribute featureMap default = 0x000F;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster WiFiNetworkDiagnostics {
- callback attribute bssid;
- callback attribute securityType;
- callback attribute wiFiVersion;
- callback attribute channelNumber;
- callback attribute rssi;
- callback attribute beaconLostCount;
- callback attribute beaconRxCount;
- callback attribute packetMulticastRxCount;
- callback attribute packetMulticastTxCount;
- callback attribute packetUnicastRxCount;
- callback attribute packetUnicastTxCount;
- callback attribute currentMaxRate;
- callback attribute overrunCount;
- ram attribute featureMap default = 3;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster EthernetNetworkDiagnostics {
- callback attribute PHYRate;
- callback attribute fullDuplex;
- callback attribute packetRxCount;
- callback attribute packetTxCount;
- callback attribute txErrCount;
- callback attribute collisionCount;
- callback attribute overrunCount;
- callback attribute carrierDetect;
- callback attribute timeSinceReset;
- ram attribute featureMap default = 3;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster Switch {
- }
-
- server cluster AdministratorCommissioning {
- callback attribute windowStatus;
- callback attribute adminFabricIndex default = 1;
- callback attribute adminVendorId;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster OperationalCredentials {
- callback attribute NOCs;
- callback attribute fabrics;
- callback attribute supportedFabrics;
- callback attribute commissionedFabrics;
- callback attribute trustedRootCertificates;
- callback attribute currentFabricIndex;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster GroupKeyManagement {
- callback attribute groupKeyMap;
- callback attribute groupTable;
- callback attribute maxGroupsPerFabric;
- callback attribute maxGroupKeysPerFabric;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster FixedLabel {
- callback attribute labelList;
- ram attribute clusterRevision default = 1;
- }
-
- server cluster UserLabel {
- callback attribute labelList;
- ram attribute clusterRevision default = 1;
- }
-}
-
-
diff --git a/zzz_generated/sl_template/IMClusterCommandHandler.cpp b/zzz_generated/sl_template/IMClusterCommandHandler.cpp
deleted file mode 100644
index f8ae80696f674b..00000000000000
--- a/zzz_generated/sl_template/IMClusterCommandHandler.cpp
+++ /dev/null
@@ -1,722 +0,0 @@
-/*
- *
- * Copyright (c) 2022 Project CHIP Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// THIS FILE IS GENERATED BY ZAP
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-// Currently we need some work to keep compatible with ember lib.
-#include
-
-namespace chip {
-namespace app {
-
-// Cluster specific command parsing
-
-namespace Clusters {
-
-namespace AdministratorCommissioning {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::OpenCommissioningWindow::Id: {
- Commands::OpenCommissioningWindow::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfAdministratorCommissioningClusterOpenCommissioningWindowCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::OpenBasicCommissioningWindow::Id: {
- Commands::OpenBasicCommissioningWindow::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::RevokeCommissioning::Id: {
- Commands::RevokeCommissioning::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfAdministratorCommissioningClusterRevokeCommissioningCallback(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 DiagnosticLogs {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::RetrieveLogsRequest::Id: {
- Commands::RetrieveLogsRequest::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfDiagnosticLogsClusterRetrieveLogsRequestCallback(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 EthernetNetworkDiagnostics {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::ResetCounts::Id: {
- Commands::ResetCounts::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfEthernetNetworkDiagnosticsClusterResetCountsCallback(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 GeneralCommissioning {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::ArmFailSafe::Id: {
- Commands::ArmFailSafe::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfGeneralCommissioningClusterArmFailSafeCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::SetRegulatoryConfig::Id: {
- Commands::SetRegulatoryConfig::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfGeneralCommissioningClusterSetRegulatoryConfigCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::CommissioningComplete::Id: {
- Commands::CommissioningComplete::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfGeneralCommissioningClusterCommissioningCompleteCallback(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 GroupKeyManagement {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::KeySetWrite::Id: {
- Commands::KeySetWrite::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfGroupKeyManagementClusterKeySetWriteCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::KeySetRead::Id: {
- Commands::KeySetRead::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfGroupKeyManagementClusterKeySetReadCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::KeySetRemove::Id: {
- Commands::KeySetRemove::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfGroupKeyManagementClusterKeySetRemoveCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::KeySetReadAllIndices::Id: {
- Commands::KeySetReadAllIndices::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfGroupKeyManagementClusterKeySetReadAllIndicesCallback(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 {
-
-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 NetworkCommissioning {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::ScanNetworks::Id: {
- Commands::ScanNetworks::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfNetworkCommissioningClusterScanNetworksCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::AddOrUpdateWiFiNetwork::Id: {
- Commands::AddOrUpdateWiFiNetwork::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::AddOrUpdateThreadNetwork::Id: {
- Commands::AddOrUpdateThreadNetwork::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::RemoveNetwork::Id: {
- Commands::RemoveNetwork::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfNetworkCommissioningClusterRemoveNetworkCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::ConnectNetwork::Id: {
- Commands::ConnectNetwork::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfNetworkCommissioningClusterConnectNetworkCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::ReorderNetwork::Id: {
- Commands::ReorderNetwork::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfNetworkCommissioningClusterReorderNetworkCallback(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 OtaSoftwareUpdateRequestor {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::AnnounceOtaProvider::Id: {
- Commands::AnnounceOtaProvider::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOtaSoftwareUpdateRequestorClusterAnnounceOtaProviderCallback(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 OperationalCredentials {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::AttestationRequest::Id: {
- Commands::AttestationRequest::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterAttestationRequestCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::CertificateChainRequest::Id: {
- Commands::CertificateChainRequest::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterCertificateChainRequestCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::CSRRequest::Id: {
- Commands::CSRRequest::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterCSRRequestCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::AddNOC::Id: {
- Commands::AddNOC::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterAddNOCCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::UpdateNOC::Id: {
- Commands::UpdateNOC::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterUpdateNOCCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::UpdateFabricLabel::Id: {
- Commands::UpdateFabricLabel::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterUpdateFabricLabelCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::RemoveFabric::Id: {
- Commands::RemoveFabric::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterRemoveFabricCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::AddTrustedRootCertificate::Id: {
- Commands::AddTrustedRootCertificate::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterAddTrustedRootCertificateCallback(apCommandObj, aCommandPath, commandData);
- }
- break;
- }
- case Commands::RemoveTrustedRootCertificate::Id: {
- Commands::RemoveTrustedRootCertificate::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfOperationalCredentialsClusterRemoveTrustedRootCertificateCallback(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 SoftwareDiagnostics {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::ResetWatermarks::Id: {
- Commands::ResetWatermarks::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfSoftwareDiagnosticsClusterResetWatermarksCallback(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 ThreadNetworkDiagnostics {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::ResetCounts::Id: {
- Commands::ResetCounts::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfThreadNetworkDiagnosticsClusterResetCountsCallback(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 WiFiNetworkDiagnostics {
-
-void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
-{
- CHIP_ERROR TLVError = CHIP_NO_ERROR;
- bool wasHandled = false;
- {
- switch (aCommandPath.mCommandId)
- {
- case Commands::ResetCounts::Id: {
- Commands::ResetCounts::DecodableType commandData;
- TLVError = DataModel::Decode(aDataTlv, commandData);
- if (TLVError == CHIP_NO_ERROR) {
- wasHandled = emberAfWiFiNetworkDiagnosticsClusterResetCountsCallback(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 Clusters
-
-void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
-{
- Compatibility::SetupEmberAfCommandHandler(apCommandObj, aCommandPath);
-
- switch (aCommandPath.mClusterId)
- {
- case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::EthernetNetworkDiagnostics::Id:
- Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::GroupKeyManagement::Id:
- Clusters::GroupKeyManagement::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::Groups::Id:
- Clusters::Groups::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::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::SoftwareDiagnostics::Id:
- Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::ThreadNetworkDiagnostics::Id:
- Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- case Clusters::WiFiNetworkDiagnostics::Id:
- Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
- break;
- default:
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
- apCommandObj->AddStatus(
- aCommandPath,
- Protocols::InteractionModel::Status::UnsupportedCluster
- );
- break;
- }
-
- Compatibility::ResetEmberAfObjects();
-}
-
-} // namespace app
-} // namespace chip
diff --git a/zzz_generated/sl_template/PluginApplicationCallbacks.h b/zzz_generated/sl_template/PluginApplicationCallbacks.h
deleted file mode 100644
index c929f794bf6fd2..00000000000000
--- a/zzz_generated/sl_template/PluginApplicationCallbacks.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- *
- * Copyright (c) 2022 Project CHIP Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// THIS FILE IS GENERATED BY ZAP
-
-#pragma once
-
-#include
-
-#define MATTER_PLUGINS_INIT MatterAccessControlPluginServerInitCallback(); MatterAdministratorCommissioningPluginServerInitCallback(); MatterBasicPluginServerInitCallback(); MatterDescriptorPluginServerInitCallback(); MatterDiagnosticLogsPluginServerInitCallback(); MatterEthernetNetworkDiagnosticsPluginServerInitCallback(); MatterFixedLabelPluginServerInitCallback(); MatterGeneralCommissioningPluginServerInitCallback(); MatterGeneralDiagnosticsPluginServerInitCallback(); MatterGroupKeyManagementPluginServerInitCallback(); MatterGroupsPluginServerInitCallback(); MatterLocalizationConfigurationPluginServerInitCallback(); MatterNetworkCommissioningPluginServerInitCallback(); MatterOtaSoftwareUpdateProviderPluginClientInitCallback(); MatterOtaSoftwareUpdateRequestorPluginServerInitCallback(); MatterOperationalCredentialsPluginServerInitCallback(); MatterSoftwareDiagnosticsPluginServerInitCallback(); MatterSwitchPluginServerInitCallback(); MatterThreadNetworkDiagnosticsPluginServerInitCallback(); MatterTimeFormatLocalizationPluginServerInitCallback(); MatterUserLabelPluginServerInitCallback(); MatterWiFiNetworkDiagnosticsPluginServerInitCallback();
-
diff --git a/zzz_generated/sl_template/endpoint_config.h b/zzz_generated/sl_template/endpoint_config.h
deleted file mode 100644
index 27ec1b08952b92..00000000000000
--- a/zzz_generated/sl_template/endpoint_config.h
+++ /dev/null
@@ -1,1065 +0,0 @@
-/*
- *
- * Copyright (c) 2022 Project CHIP Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// THIS FILE IS GENERATED BY ZAP
-
-// Prevent multiple inclusion
-#pragma once
-
-#include
-
-
-// Default values for the attributes longer than a pointer,
-// in a form of a binary blob
-// Separate block is generated for big-endian and little-endian cases.
-#if BIGENDIAN_CPU
-#define GENERATED_DEFAULTS { \
-\
- /* Endpoint: 0, Cluster: Localization Configuration (server), big-endian */\
-\
- /* 0 - ActiveLocale, */\
- 5, 'e', 'n', '-', 'U', 'S', \
-\
-\
- /* Endpoint: 0, Cluster: General Commissioning (server), big-endian */\
-\
- /* 6 - Breadcrumb, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 14 - FeatureMap, */\
- 0x00, 0x00, 0x00, 0x06, \
-\
-\
- /* Endpoint: 0, Cluster: Network Commissioning (server), big-endian */\
-\
- /* 18 - LastConnectErrorValue, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 22 - FeatureMap, */\
- 0x00, 0x00, 0x00, 0x02, \
-\
-\
- /* Endpoint: 0, Cluster: Software Diagnostics (server), big-endian */\
-\
- /* 26 - FeatureMap, */\
- 0x00, 0x00, 0x00, 0x01, \
-\
-\
- /* Endpoint: 0, Cluster: Thread Network Diagnostics (server), big-endian */\
-\
- /* 30 - NetworkName, */\
- 0x00, 0x00, \
-\
- /* 32 - ExtendedPanId, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 40 - OverrunCount, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 48 - PartitionId, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 52 - TxTotalCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 56 - TxUnicastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 60 - TxBroadcastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 64 - TxAckRequestedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 68 - TxAckedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 72 - TxNoAckRequestedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 76 - TxDataCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 80 - TxDataPollCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 84 - TxBeaconCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 88 - TxBeaconRequestCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 92 - TxOtherCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 96 - TxRetryCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 100 - TxDirectMaxRetryExpiryCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 104 - TxIndirectMaxRetryExpiryCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 108 - TxErrCcaCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 112 - TxErrAbortCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 116 - TxErrBusyChannelCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 120 - RxTotalCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 124 - RxUnicastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 128 - RxBroadcastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 132 - RxDataCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 136 - RxDataPollCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 140 - RxBeaconCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 144 - RxBeaconRequestCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 148 - RxOtherCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 152 - RxAddressFilteredCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 156 - RxDestAddrFilteredCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 160 - RxDuplicatedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 164 - RxErrNoFrameCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 168 - RxErrUnknownNeighborCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 172 - RxErrInvalidSrcAddrCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 176 - RxErrSecCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 180 - RxErrFcsCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 184 - RxErrOtherCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 188 - ActiveTimestamp, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 196 - PendingTimestamp, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 204 - delay, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 208 - ChannelMask, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 215 - FeatureMap, */\
- 0x00, 0x00, 0x00, 0x0F, \
-\
-\
- /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server), big-endian */\
-\
- /* 219 - FeatureMap, */\
- 0x00, 0x00, 0x00, 0x03, \
-\
-\
- /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server), big-endian */\
-\
- /* 223 - FeatureMap, */\
- 0x00, 0x00, 0x00, 0x03, \
-\
-}
-
-
-#else // !BIGENDIAN_CPU
-#define GENERATED_DEFAULTS { \
-\
- /* Endpoint: 0, Cluster: Localization Configuration (server), little-endian */\
-\
- /* 0 - ActiveLocale, */\
- 5, 'e', 'n', '-', 'U', 'S', \
-\
-\
- /* Endpoint: 0, Cluster: General Commissioning (server), little-endian */\
-\
- /* 6 - Breadcrumb, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 14 - FeatureMap, */\
- 0x06, 0x00, 0x00, 0x00, \
-\
-\
- /* Endpoint: 0, Cluster: Network Commissioning (server), little-endian */\
-\
- /* 18 - LastConnectErrorValue, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 22 - FeatureMap, */\
- 0x02, 0x00, 0x00, 0x00, \
-\
-\
- /* Endpoint: 0, Cluster: Software Diagnostics (server), little-endian */\
-\
- /* 26 - FeatureMap, */\
- 0x01, 0x00, 0x00, 0x00, \
-\
-\
- /* Endpoint: 0, Cluster: Thread Network Diagnostics (server), little-endian */\
-\
- /* 30 - NetworkName, */\
- 0x00, 0x00, \
-\
- /* 32 - ExtendedPanId, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 40 - OverrunCount, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 48 - PartitionId, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 52 - TxTotalCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 56 - TxUnicastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 60 - TxBroadcastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 64 - TxAckRequestedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 68 - TxAckedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 72 - TxNoAckRequestedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 76 - TxDataCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 80 - TxDataPollCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 84 - TxBeaconCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 88 - TxBeaconRequestCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 92 - TxOtherCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 96 - TxRetryCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 100 - TxDirectMaxRetryExpiryCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 104 - TxIndirectMaxRetryExpiryCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 108 - TxErrCcaCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 112 - TxErrAbortCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 116 - TxErrBusyChannelCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 120 - RxTotalCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 124 - RxUnicastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 128 - RxBroadcastCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 132 - RxDataCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 136 - RxDataPollCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 140 - RxBeaconCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 144 - RxBeaconRequestCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 148 - RxOtherCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 152 - RxAddressFilteredCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 156 - RxDestAddrFilteredCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 160 - RxDuplicatedCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 164 - RxErrNoFrameCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 168 - RxErrUnknownNeighborCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 172 - RxErrInvalidSrcAddrCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 176 - RxErrSecCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 180 - RxErrFcsCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 184 - RxErrOtherCount, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 188 - ActiveTimestamp, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 196 - PendingTimestamp, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 204 - delay, */\
- 0x00, 0x00, 0x00, 0x00, \
-\
- /* 208 - ChannelMask, */\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-\
- /* 215 - FeatureMap, */\
- 0x0F, 0x00, 0x00, 0x00, \
-\
-\
- /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server), little-endian */\
-\
- /* 219 - FeatureMap, */\
- 0x03, 0x00, 0x00, 0x00, \
-\
-\
- /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server), little-endian */\
-\
- /* 223 - FeatureMap, */\
- 0x03, 0x00, 0x00, 0x00, \
-\
-}
-
-#endif // BIGENDIAN_CPU
-
-#define GENERATED_DEFAULTS_COUNT (51)
-
-#define ZAP_TYPE(type) ZCL_ ## type ## _ATTRIBUTE_TYPE
-#define ZAP_LONG_DEFAULTS_INDEX(index) { &generatedDefaults[index] }
-#define ZAP_MIN_MAX_DEFAULTS_INDEX(index) { &minMaxDefaults[index] }
-#define ZAP_EMPTY_DEFAULT() {(uint16_t) 0}
-#define ZAP_SIMPLE_DEFAULT(x) {(uint16_t) x}
-
-// This is an array of EmberAfAttributeMinMaxValue structures.
-#define GENERATED_MIN_MAX_DEFAULT_COUNT 1
-#define GENERATED_MIN_MAX_DEFAULTS { \
-\
- /* Endpoint: 0, Cluster: Time Format Localization (server) */ \
- { (uint16_t)0x0, (uint16_t)0x0, (uint16_t)0x1 } /* HourFormat */ \
-}
-
-
-#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_ ## mask
-// This is an array of EmberAfAttributeMetadata structures.
-#define GENERATED_ATTRIBUTE_COUNT 189
-#define GENERATED_ATTRIBUTES { \
-\
- /* Endpoint: 0, Cluster: Groups (server) */ \
- { 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* name support */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, 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 */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Access Control (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* ACL */ \
- { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* Extension */ \
- { 0x00000002, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SubjectsPerAccessControlEntry */ \
- { 0x00000003, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TargetsPerAccessControlEntry */ \
- { 0x00000004, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* AccessControlEntriesPerFabric */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Basic (server) */ \
- { 0x00000000, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* DataModelRevision */ \
- { 0x00000001, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* VendorName */ \
- { 0x00000002, ZAP_TYPE(VENDOR_ID), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* VendorID */ \
- { 0x00000003, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* ProductName */ \
- { 0x00000004, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* ProductID */ \
- { 0x00000005, ZAP_TYPE(CHAR_STRING), 33, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* NodeLabel */ \
- { 0x00000006, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* Location */ \
- { 0x00000007, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* HardwareVersion */ \
- { 0x00000008, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* HardwareVersionString */ \
- { 0x00000009, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* SoftwareVersion */ \
- { 0x0000000A, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* SoftwareVersionString */ \
- { 0x0000000B, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* ManufacturingDate */ \
- { 0x0000000C, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* PartNumber */ \
- { 0x0000000D, ZAP_TYPE(LONG_CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* ProductURL */ \
- { 0x0000000E, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* ProductLabel */ \
- { 0x0000000F, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* SerialNumber */ \
- { 0x00000010, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0) }, /* LocalConfigDisabled */ \
- { 0x00000011, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* Reachable */ \
- { 0x00000012, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_EMPTY_DEFAULT() }, /* UniqueID */ \
- { 0x00000013, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CapabilityMinima */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* DefaultOtaProviders */ \
- { 0x00000001, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(1) }, /* UpdatePossible */ \
- { 0x00000002, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* UpdateState */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0) }, /* UpdateStateProgress */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Localization Configuration (server) */ \
- { 0x00000001, ZAP_TYPE(CHAR_STRING), 36, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_LONG_DEFAULTS_INDEX(0) }, /* ActiveLocale */ \
- { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportedLocales */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Time Format Localization (server) */ \
- { 0x00000000, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_MIN_MAX_DEFAULTS_INDEX(0) }, /* HourFormat */ \
- { 0x00000001, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0) }, /* ActiveCalendarType */ \
- { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportedCalendarTypes */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: General Commissioning (server) */ \
- { 0x00000000, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_LONG_DEFAULTS_INDEX(6) }, /* Breadcrumb */ \
- { 0x00000001, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BasicCommissioningInfo */ \
- { 0x00000002, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RegulatoryConfig */ \
- { 0x00000003, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* LocationCapability */ \
- { 0x00000004, ZAP_TYPE(BOOLEAN), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportsConcurrentConnection */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_LONG_DEFAULTS_INDEX(14) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Network Commissioning (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* MaxNetworks */ \
- { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* Networks */ \
- { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ScanMaxTimeSeconds */ \
- { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ConnectMaxTimeSeconds */ \
- { 0x00000004, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* InterfaceEnabled */ \
- { 0x00000005, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastNetworkingStatus */ \
- { 0x00000006, ZAP_TYPE(OCTET_STRING), 33, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastNetworkID */ \
- { 0x00000007, ZAP_TYPE(INT32S), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_LONG_DEFAULTS_INDEX(18) }, /* LastConnectErrorValue */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_LONG_DEFAULTS_INDEX(22) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: General Diagnostics (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NetworkInterfaces */ \
- { 0x00000001, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RebootCount */ \
- { 0x00000002, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* UpTime */ \
- { 0x00000003, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TotalOperationalHours */ \
- { 0x00000004, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BootReasons */ \
- { 0x00000005, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveHardwareFaults */ \
- { 0x00000006, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveRadioFaults */ \
- { 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaults */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ThreadMetrics */ \
- { 0x00000001, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentHeapFree */ \
- { 0x00000002, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentHeapUsed */ \
- { 0x00000003, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentHeapHighWatermark */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_LONG_DEFAULTS_INDEX(26) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \
- { 0x00000000, ZAP_TYPE(INT16U), 2, 0, ZAP_EMPTY_DEFAULT() }, /* channel */ \
- { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* RoutingRole */ \
- { 0x00000002, ZAP_TYPE(CHAR_STRING), 17, 0, ZAP_LONG_DEFAULTS_INDEX(30) }, /* NetworkName */ \
- { 0x00000003, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* PanId */ \
- { 0x00000004, ZAP_TYPE(INT64U), 8, 0, ZAP_LONG_DEFAULTS_INDEX(32) }, /* ExtendedPanId */ \
- { 0x00000005, ZAP_TYPE(OCTET_STRING), 18, 0, ZAP_EMPTY_DEFAULT() }, /* MeshLocalPrefix */ \
- { 0x00000006, ZAP_TYPE(INT64U), 8, 0, ZAP_LONG_DEFAULTS_INDEX(40) }, /* OverrunCount */ \
- { 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NeighborTableList */ \
- { 0x00000008, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RouteTableList */ \
- { 0x00000009, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(48) }, /* PartitionId */ \
- { 0x0000000A, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* weighting */ \
- { 0x0000000B, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* DataVersion */ \
- { 0x0000000C, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* StableDataVersion */ \
- { 0x0000000D, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* LeaderRouterId */ \
- { 0x0000000E, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* DetachedRoleCount */ \
- { 0x0000000F, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ChildRoleCount */ \
- { 0x00000010, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RouterRoleCount */ \
- { 0x00000011, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* LeaderRoleCount */ \
- { 0x00000012, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* AttachAttemptCount */ \
- { 0x00000013, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* PartitionIdChangeCount */ \
- { 0x00000014, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* BetterPartitionAttachAttemptCount */ \
- { 0x00000015, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ParentChangeCount */ \
- { 0x00000016, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(52) }, /* TxTotalCount */ \
- { 0x00000017, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(56) }, /* TxUnicastCount */ \
- { 0x00000018, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(60) }, /* TxBroadcastCount */ \
- { 0x00000019, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(64) }, /* TxAckRequestedCount */ \
- { 0x0000001A, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(68) }, /* TxAckedCount */ \
- { 0x0000001B, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(72) }, /* TxNoAckRequestedCount */ \
- { 0x0000001C, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(76) }, /* TxDataCount */ \
- { 0x0000001D, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(80) }, /* TxDataPollCount */ \
- { 0x0000001E, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(84) }, /* TxBeaconCount */ \
- { 0x0000001F, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(88) }, /* TxBeaconRequestCount */ \
- { 0x00000020, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(92) }, /* TxOtherCount */ \
- { 0x00000021, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(96) }, /* TxRetryCount */ \
- { 0x00000022, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(100) }, /* TxDirectMaxRetryExpiryCount */ \
- { 0x00000023, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(104) }, /* TxIndirectMaxRetryExpiryCount */ \
- { 0x00000024, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(108) }, /* TxErrCcaCount */ \
- { 0x00000025, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(112) }, /* TxErrAbortCount */ \
- { 0x00000026, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(116) }, /* TxErrBusyChannelCount */ \
- { 0x00000027, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(120) }, /* RxTotalCount */ \
- { 0x00000028, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(124) }, /* RxUnicastCount */ \
- { 0x00000029, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(128) }, /* RxBroadcastCount */ \
- { 0x0000002A, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(132) }, /* RxDataCount */ \
- { 0x0000002B, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(136) }, /* RxDataPollCount */ \
- { 0x0000002C, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(140) }, /* RxBeaconCount */ \
- { 0x0000002D, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(144) }, /* RxBeaconRequestCount */ \
- { 0x0000002E, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(148) }, /* RxOtherCount */ \
- { 0x0000002F, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(152) }, /* RxAddressFilteredCount */ \
- { 0x00000030, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(156) }, /* RxDestAddrFilteredCount */ \
- { 0x00000031, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(160) }, /* RxDuplicatedCount */ \
- { 0x00000032, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(164) }, /* RxErrNoFrameCount */ \
- { 0x00000033, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(168) }, /* RxErrUnknownNeighborCount */ \
- { 0x00000034, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(172) }, /* RxErrInvalidSrcAddrCount */ \
- { 0x00000035, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(176) }, /* RxErrSecCount */ \
- { 0x00000036, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(180) }, /* RxErrFcsCount */ \
- { 0x00000037, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(184) }, /* RxErrOtherCount */ \
- { 0x00000038, ZAP_TYPE(INT64U), 8, 0, ZAP_LONG_DEFAULTS_INDEX(188) }, /* ActiveTimestamp */ \
- { 0x00000039, ZAP_TYPE(INT64U), 8, 0, ZAP_LONG_DEFAULTS_INDEX(196) }, /* PendingTimestamp */ \
- { 0x0000003A, ZAP_TYPE(INT32U), 4, 0, ZAP_LONG_DEFAULTS_INDEX(204) }, /* delay */ \
- { 0x0000003B, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SecurityPolicy */ \
- { 0x0000003C, ZAP_TYPE(OCTET_STRING), 5, 0, ZAP_LONG_DEFAULTS_INDEX(208) }, /* ChannelMask */ \
- { 0x0000003D, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OperationalDatasetComponents */ \
- { 0x0000003E, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaultsList */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_LONG_DEFAULTS_INDEX(215) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */ \
- { 0x00000000, ZAP_TYPE(OCTET_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* bssid */ \
- { 0x00000001, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* SecurityType */ \
- { 0x00000002, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* WiFiVersion */ \
- { 0x00000003, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* ChannelNumber */ \
- { 0x00000004, ZAP_TYPE(INT8S), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* Rssi */ \
- { 0x00000005, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BeaconLostCount */ \
- { 0x00000006, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BeaconRxCount */ \
- { 0x00000007, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketMulticastRxCount */ \
- { 0x00000008, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketMulticastTxCount */ \
- { 0x00000009, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketUnicastRxCount */ \
- { 0x0000000A, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketUnicastTxCount */ \
- { 0x0000000B, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentMaxRate */ \
- { 0x0000000C, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_LONG_DEFAULTS_INDEX(219) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */ \
- { 0x00000000, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* PHYRate */ \
- { 0x00000001, ZAP_TYPE(BOOLEAN), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* FullDuplex */ \
- { 0x00000002, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketRxCount */ \
- { 0x00000003, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketTxCount */ \
- { 0x00000004, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxErrCount */ \
- { 0x00000005, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CollisionCount */ \
- { 0x00000006, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \
- { 0x00000007, ZAP_TYPE(BOOLEAN), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* CarrierDetect */ \
- { 0x00000008, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TimeSinceReset */ \
- { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_LONG_DEFAULTS_INDEX(223) }, /* FeatureMap */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \
- { 0x00000000, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* WindowStatus */ \
- { 0x00000001, ZAP_TYPE(FABRIC_IDX), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* AdminFabricIndex */ \
- { 0x00000002, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* AdminVendorId */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Operational Credentials (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NOCs */ \
- { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* Fabrics */ \
- { 0x00000002, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportedFabrics */ \
- { 0x00000003, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CommissionedFabrics */ \
- { 0x00000004, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TrustedRootCertificates */ \
- { 0x00000005, ZAP_TYPE(FABRIC_IDX), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentFabricIndex */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Group Key Management (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* GroupKeyMap */ \
- { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* GroupTable */ \
- { 0x00000002, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* MaxGroupsPerFabric */ \
- { 0x00000003, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* MaxGroupKeysPerFabric */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: Fixed Label (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* label list */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-\
- /* Endpoint: 0, Cluster: User Label (server) */ \
- { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* label list */ \
- { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
-}
-
-
-// This is an array of EmberAfCluster structures.
-#define ZAP_ATTRIBUTE_INDEX(index) (&generatedAttributes[index])
-
-#define ZAP_GENERATED_COMMANDS_INDEX(index) ((chip::CommandId *) (&generatedCommands[index]))
-
-// Cluster function static arrays
-#define GENERATED_FUNCTION_ARRAYS \
-const EmberAfGenericClusterFunction chipFuncArrayGroupsServer[] = {\
- (EmberAfGenericClusterFunction) emberAfGroupsClusterServerInitCallback,\
-};\
-const EmberAfGenericClusterFunction chipFuncArrayBasicServer[] = {\
- (EmberAfGenericClusterFunction) emberAfBasicClusterServerInitCallback,\
-};\
-const EmberAfGenericClusterFunction chipFuncArrayLocalizationConfigurationServer[] = {\
- (EmberAfGenericClusterFunction) emberAfLocalizationConfigurationClusterServerInitCallback,\
- (EmberAfGenericClusterFunction) MatterLocalizationConfigurationClusterServerPreAttributeChangedCallback,\
-};\
-const EmberAfGenericClusterFunction chipFuncArrayTimeFormatLocalizationServer[] = {\
- (EmberAfGenericClusterFunction) emberAfTimeFormatLocalizationClusterServerInitCallback,\
- (EmberAfGenericClusterFunction) MatterTimeFormatLocalizationClusterServerPreAttributeChangedCallback,\
-};\
-
-
-
-// clang-format off
-#define GENERATED_COMMANDS { \
- /* Endpoint: 0, Cluster: Groups (server) */\
- /* client_generated */ \
- 0x00000000 /* AddGroup */, \
- 0x00000001 /* ViewGroup */, \
- 0x00000002 /* GetGroupMembership */, \
- 0x00000003 /* RemoveGroup */, \
- 0x00000004 /* RemoveAllGroups */, \
- 0x00000005 /* AddGroupIfIdentifying */, \
- chip::kInvalidCommandId /* end of list */, \
- /* server_generated */ \
- 0x00000000 /* AddGroupResponse */, \
- 0x00000001 /* ViewGroupResponse */, \
- 0x00000002 /* GetGroupMembershipResponse */, \
- 0x00000003 /* RemoveGroupResponse */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */\
- /* client_generated */ \
- 0x00000000 /* AnnounceOtaProvider */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: General Commissioning (server) */\
- /* client_generated */ \
- 0x00000000 /* ArmFailSafe */, \
- 0x00000002 /* SetRegulatoryConfig */, \
- 0x00000004 /* CommissioningComplete */, \
- chip::kInvalidCommandId /* end of list */, \
- /* server_generated */ \
- 0x00000001 /* ArmFailSafeResponse */, \
- 0x00000005 /* CommissioningCompleteResponse */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: Network Commissioning (server) */\
- /* client_generated */ \
- 0x00000000 /* ScanNetworks */, \
- 0x00000002 /* AddOrUpdateWiFiNetwork */, \
- 0x00000003 /* AddOrUpdateThreadNetwork */, \
- 0x00000004 /* RemoveNetwork */, \
- 0x00000006 /* ConnectNetwork */, \
- 0x00000008 /* ReorderNetwork */, \
- chip::kInvalidCommandId /* end of list */, \
- /* server_generated */ \
- 0x00000001 /* ScanNetworksResponse */, \
- 0x00000007 /* ConnectNetworkResponse */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: Diagnostic Logs (server) */\
- /* client_generated */ \
- 0x00000000 /* RetrieveLogsRequest */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: Software Diagnostics (server) */\
- /* client_generated */ \
- 0x00000000 /* ResetWatermarks */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */\
- /* client_generated */ \
- 0x00000000 /* ResetCounts */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */\
- /* client_generated */ \
- 0x00000000 /* ResetCounts */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */\
- /* client_generated */ \
- 0x00000000 /* ResetCounts */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */\
- /* client_generated */ \
- 0x00000000 /* OpenCommissioningWindow */, \
- 0x00000001 /* OpenBasicCommissioningWindow */, \
- 0x00000002 /* RevokeCommissioning */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: Operational Credentials (server) */\
- /* client_generated */ \
- 0x00000000 /* AttestationRequest */, \
- 0x00000002 /* CertificateChainRequest */, \
- 0x00000004 /* CSRRequest */, \
- 0x00000006 /* AddNOC */, \
- 0x00000007 /* UpdateNOC */, \
- 0x00000009 /* UpdateFabricLabel */, \
- 0x0000000A /* RemoveFabric */, \
- 0x0000000B /* AddTrustedRootCertificate */, \
- 0x0000000C /* RemoveTrustedRootCertificate */, \
- chip::kInvalidCommandId /* end of list */, \
- /* server_generated */ \
- 0x00000001 /* AttestationResponse */, \
- 0x00000003 /* CertificateChainResponse */, \
- 0x00000005 /* CSRResponse */, \
- 0x00000008 /* NOCResponse */, \
- chip::kInvalidCommandId /* end of list */, \
- /* Endpoint: 0, Cluster: Group Key Management (server) */\
- /* client_generated */ \
- 0x00000000 /* KeySetWrite */, \
- 0x00000001 /* KeySetRead */, \
- 0x00000003 /* KeySetRemove */, \
- 0x00000004 /* KeySetReadAllIndices */, \
- chip::kInvalidCommandId /* end of list */, \
- /* server_generated */ \
- 0x00000002 /* KeySetReadResponse */, \
- 0x00000005 /* KeySetReadAllIndicesResponse */, \
- chip::kInvalidCommandId /* end of list */, \
-}
-
-// clang-format on
-
-#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_ ## mask
-#define GENERATED_CLUSTER_COUNT 22
-
-
-// clang-format off
-#define GENERATED_CLUSTERS { \
- { \
- /* Endpoint: 0, Cluster: Groups (server) */ \
- .clusterId = 0x00000004, \
- .attributes = ZAP_ATTRIBUTE_INDEX(0), \
- .attributeCount = 2, \
- .clusterSize = 3, \
- .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
- .functions = chipFuncArrayGroupsServer, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 0 ) ,\
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 7 ) ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Descriptor (server) */ \
- .clusterId = 0x0000001D, \
- .attributes = ZAP_ATTRIBUTE_INDEX(2), \
- .attributeCount = 5, \
- .clusterSize = 0, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Access Control (server) */ \
- .clusterId = 0x0000001F, \
- .attributes = ZAP_ATTRIBUTE_INDEX(7), \
- .attributeCount = 6, \
- .clusterSize = 2, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Basic (server) */ \
- .clusterId = 0x00000028, \
- .attributes = ZAP_ATTRIBUTE_INDEX(13), \
- .attributeCount = 21, \
- .clusterSize = 37, \
- .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
- .functions = chipFuncArrayBasicServer, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: OTA Software Update Provider (client) */ \
- .clusterId = 0x00000029, \
- .attributes = ZAP_ATTRIBUTE_INDEX(34), \
- .attributeCount = 0, \
- .clusterSize = 0, \
- .mask = ZAP_CLUSTER_MASK(CLIENT), \
- .functions = NULL, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \
- .clusterId = 0x0000002A, \
- .attributes = ZAP_ATTRIBUTE_INDEX(34), \
- .attributeCount = 5, \
- .clusterSize = 5, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 12 ) ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Localization Configuration (server) */ \
- .clusterId = 0x0000002B, \
- .attributes = ZAP_ATTRIBUTE_INDEX(39), \
- .attributeCount = 3, \
- .clusterSize = 38, \
- .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
- .functions = chipFuncArrayLocalizationConfigurationServer, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Time Format Localization (server) */ \
- .clusterId = 0x0000002C, \
- .attributes = ZAP_ATTRIBUTE_INDEX(42), \
- .attributeCount = 4, \
- .clusterSize = 4, \
- .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
- .functions = chipFuncArrayTimeFormatLocalizationServer, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: General Commissioning (server) */ \
- .clusterId = 0x00000030, \
- .attributes = ZAP_ATTRIBUTE_INDEX(46), \
- .attributeCount = 7, \
- .clusterSize = 14, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 14 ) ,\
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 18 ) ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Network Commissioning (server) */ \
- .clusterId = 0x00000031, \
- .attributes = ZAP_ATTRIBUTE_INDEX(53), \
- .attributeCount = 10, \
- .clusterSize = 48, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 21 ) ,\
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 28 ) ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Diagnostic Logs (server) */ \
- .clusterId = 0x00000032, \
- .attributes = ZAP_ATTRIBUTE_INDEX(63), \
- .attributeCount = 0, \
- .clusterSize = 0, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 31 ) ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: General Diagnostics (server) */ \
- .clusterId = 0x00000033, \
- .attributes = ZAP_ATTRIBUTE_INDEX(63), \
- .attributeCount = 9, \
- .clusterSize = 2, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \
- .clusterId = 0x00000034, \
- .attributes = ZAP_ATTRIBUTE_INDEX(72), \
- .attributeCount = 6, \
- .clusterSize = 6, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 33 ) ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \
- .clusterId = 0x00000035, \
- .attributes = ZAP_ATTRIBUTE_INDEX(78), \
- .attributeCount = 65, \
- .clusterSize = 247, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 35 ) ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */ \
- .clusterId = 0x00000036, \
- .attributes = ZAP_ATTRIBUTE_INDEX(143), \
- .attributeCount = 15, \
- .clusterSize = 6, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 37 ) ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */ \
- .clusterId = 0x00000037, \
- .attributes = ZAP_ATTRIBUTE_INDEX(158), \
- .attributeCount = 11, \
- .clusterSize = 6, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 39 ) ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Switch (server) */ \
- .clusterId = 0x0000003B, \
- .attributes = ZAP_ATTRIBUTE_INDEX(169), \
- .attributeCount = 0, \
- .clusterSize = 0, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \
- .clusterId = 0x0000003C, \
- .attributes = ZAP_ATTRIBUTE_INDEX(169), \
- .attributeCount = 4, \
- .clusterSize = 2, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 41 ) ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Operational Credentials (server) */ \
- .clusterId = 0x0000003E, \
- .attributes = ZAP_ATTRIBUTE_INDEX(173), \
- .attributeCount = 7, \
- .clusterSize = 2, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 45 ) ,\
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 55 ) ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Group Key Management (server) */ \
- .clusterId = 0x0000003F, \
- .attributes = ZAP_ATTRIBUTE_INDEX(180), \
- .attributeCount = 5, \
- .clusterSize = 2, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 60 ) ,\
- .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 65 ) ,\
- },\
- { \
- /* Endpoint: 0, Cluster: Fixed Label (server) */ \
- .clusterId = 0x00000040, \
- .attributes = ZAP_ATTRIBUTE_INDEX(185), \
- .attributeCount = 2, \
- .clusterSize = 2, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
- { \
- /* Endpoint: 0, Cluster: User Label (server) */ \
- .clusterId = 0x00000041, \
- .attributes = ZAP_ATTRIBUTE_INDEX(187), \
- .attributeCount = 2, \
- .clusterSize = 2, \
- .mask = ZAP_CLUSTER_MASK(SERVER), \
- .functions = NULL, \
- .acceptedCommandList = nullptr ,\
- .generatedCommandList = nullptr ,\
- },\
-}
-
-// clang-format on
-
-#define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index])
-
-#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 21
-
-// This is an array of EmberAfEndpointType structures.
-#define GENERATED_ENDPOINT_TYPES { \
- { ZAP_CLUSTER_INDEX(0), 22, 428 }, \
-}
-
-
-
-// Largest attribute size is needed for various buffers
-#define ATTRIBUTE_LARGEST (259)
-
-static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE,
- "ATTRIBUTE_LARGEST larger than expected");
-
-// Total size of singleton attributes
-#define ATTRIBUTE_SINGLETONS_SIZE (37)
-
-// Total size of attribute storage
-#define ATTRIBUTE_MAX_SIZE (428)
-
-// Number of fixed endpoints
-#define FIXED_ENDPOINT_COUNT (1)
-
-// Array of endpoints that are supported, the data inside
-// the array is the endpoint number.
-#define FIXED_ENDPOINT_ARRAY { 0x0000 }
-
-// Array of profile ids
-#define FIXED_PROFILE_IDS { 0x0103 }
-
-// Array of device types
-#define FIXED_DEVICE_TYPES {{0x0016,1}}
-
-// Array of device type offsets
-#define FIXED_DEVICE_TYPE_OFFSETS { 0}
-
-// Array of device type lengths
-#define FIXED_DEVICE_TYPE_LENGTHS { 1}
-
-// Array of endpoint types supported on each endpoint
-#define FIXED_ENDPOINT_TYPES { 0 }
-
-// Array of networks supported on each endpoint
-#define FIXED_NETWORKS { 0 }
-
diff --git a/zzz_generated/sl_template/CHIPClientCallbacks.h b/zzz_generated/sl_template/zap-generated/CHIPClientCallbacks.h
similarity index 96%
rename from zzz_generated/sl_template/CHIPClientCallbacks.h
rename to zzz_generated/sl_template/zap-generated/CHIPClientCallbacks.h
index 8e77aa0095d871..4458f51745a59b 100644
--- a/zzz_generated/sl_template/CHIPClientCallbacks.h
+++ b/zzz_generated/sl_template/zap-generated/CHIPClientCallbacks.h
@@ -19,16 +19,14 @@
#pragma once
-#include
#include
#include
+#include
#include
#include
-#include
#include
#include
#include
#include
// List specific responses
-
diff --git a/zzz_generated/sl_template/CHIPClusters.h b/zzz_generated/sl_template/zap-generated/CHIPClusters.h
similarity index 80%
rename from zzz_generated/sl_template/CHIPClusters.h
rename to zzz_generated/sl_template/zap-generated/CHIPClusters.h
index 15ec5aca34a215..fffb265ae9c797 100644
--- a/zzz_generated/sl_template/CHIPClusters.h
+++ b/zzz_generated/sl_template/zap-generated/CHIPClusters.h
@@ -33,7 +33,10 @@ namespace Controller {
class DLL_EXPORT OtaSoftwareUpdateProviderCluster : public ClusterBase
{
public:
- OtaSoftwareUpdateProviderCluster() : ClusterBase(app::Clusters::OtaSoftwareUpdateProvider::Id) {}
+ OtaSoftwareUpdateProviderCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session,
+ EndpointId endpoint) :
+ ClusterBase(exchangeManager, session, app::Clusters::OtaSoftwareUpdateProvider::Id, endpoint)
+ {}
~OtaSoftwareUpdateProviderCluster() {}
};
diff --git a/zzz_generated/sl_template/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/sl_template/zap-generated/IMClusterCommandHandler.cpp
new file mode 100644
index 00000000000000..6416aacfafdd21
--- /dev/null
+++ b/zzz_generated/sl_template/zap-generated/IMClusterCommandHandler.cpp
@@ -0,0 +1,1208 @@
+/*
+ *
+ * Copyright (c) 2022 Project CHIP Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// THIS FILE IS GENERATED BY ZAP
+
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+// Currently we need some work to keep compatible with ember lib.
+#include
+
+namespace chip {
+namespace app {
+
+// Cluster specific command parsing
+
+namespace Clusters {
+
+namespace AdministratorCommissioning {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::OpenCommissioningWindow::Id: {
+ Commands::OpenCommissioningWindow::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfAdministratorCommissioningClusterOpenCommissioningWindowCallback(apCommandObj, aCommandPath,
+ commandData);
+ }
+ break;
+ }
+ case Commands::OpenBasicCommissioningWindow::Id: {
+ Commands::OpenBasicCommissioningWindow::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(
+ apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::RevokeCommissioning::Id: {
+ Commands::RevokeCommissioning::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfAdministratorCommissioningClusterRevokeCommissioningCallback(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 AdministratorCommissioning
+
+namespace ColorControl {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::MoveToHue::Id: {
+ Commands::MoveToHue::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveToHueCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveHue::Id: {
+ Commands::MoveHue::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveHueCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::StepHue::Id: {
+ Commands::StepHue::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterStepHueCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveToSaturation::Id: {
+ Commands::MoveToSaturation::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveToSaturationCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveSaturation::Id: {
+ Commands::MoveSaturation::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveSaturationCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::StepSaturation::Id: {
+ Commands::StepSaturation::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterStepSaturationCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveToHueAndSaturation::Id: {
+ Commands::MoveToHueAndSaturation::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveToHueAndSaturationCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveToColor::Id: {
+ Commands::MoveToColor::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveToColorCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveColor::Id: {
+ Commands::MoveColor::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveColorCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::StepColor::Id: {
+ Commands::StepColor::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterStepColorCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveToColorTemperature::Id: {
+ Commands::MoveToColorTemperature::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveToColorTemperatureCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::EnhancedMoveToHue::Id: {
+ Commands::EnhancedMoveToHue::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterEnhancedMoveToHueCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::EnhancedMoveHue::Id: {
+ Commands::EnhancedMoveHue::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterEnhancedMoveHueCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::EnhancedStepHue::Id: {
+ Commands::EnhancedStepHue::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterEnhancedStepHueCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::EnhancedMoveToHueAndSaturation::Id: {
+ Commands::EnhancedMoveToHueAndSaturation::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::ColorLoopSet::Id: {
+ Commands::ColorLoopSet::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterColorLoopSetCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::StopMoveStep::Id: {
+ Commands::StopMoveStep::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterStopMoveStepCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveColorTemperature::Id: {
+ Commands::MoveColorTemperature::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterMoveColorTemperatureCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::StepColorTemperature::Id: {
+ Commands::StepColorTemperature::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfColorControlClusterStepColorTemperatureCallback(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 ColorControl
+
+namespace DiagnosticLogs {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::RetrieveLogsRequest::Id: {
+ Commands::RetrieveLogsRequest::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfDiagnosticLogsClusterRetrieveLogsRequestCallback(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 DiagnosticLogs
+
+namespace EthernetNetworkDiagnostics {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::ResetCounts::Id: {
+ Commands::ResetCounts::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfEthernetNetworkDiagnosticsClusterResetCountsCallback(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 EthernetNetworkDiagnostics
+
+namespace GeneralCommissioning {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::ArmFailSafe::Id: {
+ Commands::ArmFailSafe::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGeneralCommissioningClusterArmFailSafeCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::SetRegulatoryConfig::Id: {
+ Commands::SetRegulatoryConfig::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGeneralCommissioningClusterSetRegulatoryConfigCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::CommissioningComplete::Id: {
+ Commands::CommissioningComplete::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfGeneralCommissioningClusterCommissioningCompleteCallback(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 GeneralCommissioning
+
+namespace GroupKeyManagement {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::KeySetWrite::Id: {
+ Commands::KeySetWrite::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupKeyManagementClusterKeySetWriteCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::KeySetRead::Id: {
+ Commands::KeySetRead::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupKeyManagementClusterKeySetReadCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::KeySetRemove::Id: {
+ Commands::KeySetRemove::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupKeyManagementClusterKeySetRemoveCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::KeySetReadAllIndices::Id: {
+ Commands::KeySetReadAllIndices::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfGroupKeyManagementClusterKeySetReadAllIndicesCallback(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 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 LevelControl {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::MoveToLevel::Id: {
+ Commands::MoveToLevel::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterMoveToLevelCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::Move::Id: {
+ Commands::Move::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterMoveCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::Step::Id: {
+ Commands::Step::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterStepCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::Stop::Id: {
+ Commands::Stop::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterStopCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveToLevelWithOnOff::Id: {
+ Commands::MoveToLevelWithOnOff::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterMoveToLevelWithOnOffCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::MoveWithOnOff::Id: {
+ Commands::MoveWithOnOff::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterMoveWithOnOffCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::StepWithOnOff::Id: {
+ Commands::StepWithOnOff::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterStepWithOnOffCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::StopWithOnOff::Id: {
+ Commands::StopWithOnOff::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfLevelControlClusterStopWithOnOffCallback(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 LevelControl
+
+namespace NetworkCommissioning {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::ScanNetworks::Id: {
+ Commands::ScanNetworks::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfNetworkCommissioningClusterScanNetworksCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::AddOrUpdateWiFiNetwork::Id: {
+ Commands::AddOrUpdateWiFiNetwork::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::AddOrUpdateThreadNetwork::Id: {
+ Commands::AddOrUpdateThreadNetwork::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::RemoveNetwork::Id: {
+ Commands::RemoveNetwork::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfNetworkCommissioningClusterRemoveNetworkCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::ConnectNetwork::Id: {
+ Commands::ConnectNetwork::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfNetworkCommissioningClusterConnectNetworkCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::ReorderNetwork::Id: {
+ Commands::ReorderNetwork::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfNetworkCommissioningClusterReorderNetworkCallback(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 NetworkCommissioning
+
+namespace OtaSoftwareUpdateRequestor {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::AnnounceOtaProvider::Id: {
+ Commands::AnnounceOtaProvider::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfOtaSoftwareUpdateRequestorClusterAnnounceOtaProviderCallback(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 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)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::AttestationRequest::Id: {
+ Commands::AttestationRequest::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfOperationalCredentialsClusterAttestationRequestCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::CertificateChainRequest::Id: {
+ Commands::CertificateChainRequest::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfOperationalCredentialsClusterCertificateChainRequestCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::CSRRequest::Id: {
+ Commands::CSRRequest::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOperationalCredentialsClusterCSRRequestCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::AddNOC::Id: {
+ Commands::AddNOC::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOperationalCredentialsClusterAddNOCCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::UpdateNOC::Id: {
+ Commands::UpdateNOC::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOperationalCredentialsClusterUpdateNOCCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::UpdateFabricLabel::Id: {
+ Commands::UpdateFabricLabel::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOperationalCredentialsClusterUpdateFabricLabelCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::RemoveFabric::Id: {
+ Commands::RemoveFabric::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfOperationalCredentialsClusterRemoveFabricCallback(apCommandObj, aCommandPath, commandData);
+ }
+ break;
+ }
+ case Commands::AddTrustedRootCertificate::Id: {
+ Commands::AddTrustedRootCertificate::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled =
+ emberAfOperationalCredentialsClusterAddTrustedRootCertificateCallback(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 OperationalCredentials
+
+namespace SoftwareDiagnostics {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::ResetWatermarks::Id: {
+ Commands::ResetWatermarks::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfSoftwareDiagnosticsClusterResetWatermarksCallback(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 SoftwareDiagnostics
+
+namespace ThreadNetworkDiagnostics {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::ResetCounts::Id: {
+ Commands::ResetCounts::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfThreadNetworkDiagnosticsClusterResetCountsCallback(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 ThreadNetworkDiagnostics
+
+namespace WiFiNetworkDiagnostics {
+
+void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
+{
+ CHIP_ERROR TLVError = CHIP_NO_ERROR;
+ bool wasHandled = false;
+ {
+ switch (aCommandPath.mCommandId)
+ {
+ case Commands::ResetCounts::Id: {
+ Commands::ResetCounts::DecodableType commandData;
+ TLVError = DataModel::Decode(aDataTlv, commandData);
+ if (TLVError == CHIP_NO_ERROR)
+ {
+ wasHandled = emberAfWiFiNetworkDiagnosticsClusterResetCountsCallback(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 WiFiNetworkDiagnostics
+
+} // namespace Clusters
+
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
+{
+ Compatibility::SetupEmberAfCommandHandler(apCommandObj, aCommandPath);
+
+ switch (aCommandPath.mClusterId)
+ {
+ case Clusters::AdministratorCommissioning::Id:
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ case Clusters::ColorControl::Id:
+ Clusters::ColorControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ case Clusters::DiagnosticLogs::Id:
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ case Clusters::EthernetNetworkDiagnostics::Id:
+ Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ case Clusters::GeneralCommissioning::Id:
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ 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::LevelControl::Id:
+ Clusters::LevelControl::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;
+ case Clusters::SoftwareDiagnostics::Id:
+ Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ case Clusters::ThreadNetworkDiagnostics::Id:
+ Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ case Clusters::WiFiNetworkDiagnostics::Id:
+ Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
+ break;
+ default:
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCluster);
+ break;
+ }
+
+ Compatibility::ResetEmberAfObjects();
+}
+
+} // namespace app
+} // namespace chip
diff --git a/zzz_generated/sl_template/zap-generated/PluginApplicationCallbacks.h b/zzz_generated/sl_template/zap-generated/PluginApplicationCallbacks.h
new file mode 100644
index 00000000000000..fddb4d6e6cb042
--- /dev/null
+++ b/zzz_generated/sl_template/zap-generated/PluginApplicationCallbacks.h
@@ -0,0 +1,51 @@
+/*
+ *
+ * Copyright (c) 2022 Project CHIP Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// THIS FILE IS GENERATED BY ZAP
+
+#pragma once
+
+#include
+
+#define MATTER_PLUGINS_INIT \
+ MatterIdentifyPluginServerInitCallback(); \
+ MatterGroupsPluginServerInitCallback(); \
+ MatterOnOffPluginServerInitCallback(); \
+ MatterLevelControlPluginServerInitCallback(); \
+ MatterDescriptorPluginServerInitCallback(); \
+ MatterAccessControlPluginServerInitCallback(); \
+ MatterBasicPluginServerInitCallback(); \
+ MatterOtaSoftwareUpdateProviderPluginClientInitCallback(); \
+ MatterOtaSoftwareUpdateRequestorPluginServerInitCallback(); \
+ MatterLocalizationConfigurationPluginServerInitCallback(); \
+ MatterTimeFormatLocalizationPluginServerInitCallback(); \
+ MatterGeneralCommissioningPluginServerInitCallback(); \
+ MatterNetworkCommissioningPluginServerInitCallback(); \
+ MatterDiagnosticLogsPluginServerInitCallback(); \
+ MatterGeneralDiagnosticsPluginServerInitCallback(); \
+ MatterSoftwareDiagnosticsPluginServerInitCallback(); \
+ MatterThreadNetworkDiagnosticsPluginServerInitCallback(); \
+ MatterWiFiNetworkDiagnosticsPluginServerInitCallback(); \
+ MatterEthernetNetworkDiagnosticsPluginServerInitCallback(); \
+ MatterSwitchPluginServerInitCallback(); \
+ MatterAdministratorCommissioningPluginServerInitCallback(); \
+ MatterOperationalCredentialsPluginServerInitCallback(); \
+ MatterGroupKeyManagementPluginServerInitCallback(); \
+ MatterFixedLabelPluginServerInitCallback(); \
+ MatterUserLabelPluginServerInitCallback(); \
+ MatterColorControlPluginServerInitCallback(); \
+ MatterOccupancySensingPluginServerInitCallback();
diff --git a/zzz_generated/sl_template/access.h b/zzz_generated/sl_template/zap-generated/access.h
similarity index 90%
rename from zzz_generated/sl_template/access.h
rename to zzz_generated/sl_template/zap-generated/access.h
index 497da56b7d9daa..e91fbd2651251c 100644
--- a/zzz_generated/sl_template/access.h
+++ b/zzz_generated/sl_template/zap-generated/access.h
@@ -29,6 +29,8 @@
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
+ /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: start up current level, 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 */ \
@@ -38,7 +40,6 @@
/* Cluster: Basic, Attribute: Location, Privilege: view */ \
/* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
- /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
49, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
49, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
@@ -46,11 +47,15 @@
49, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
49, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
62, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
+ /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
/* Cluster: User Label, Attribute: label list, Privilege: view */ \
+ /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
}
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
+ /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: start up current level, 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 */ \
@@ -60,7 +65,6 @@
/* Cluster: Basic, Attribute: Location, Privilege: view */ \
/* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
- /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
0, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
1, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
@@ -68,11 +72,15 @@
6, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
7, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
0, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
+ /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
/* Cluster: User Label, Attribute: label list, Privilege: view */ \
+ /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
}
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
+ /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
+ /* Cluster: Level Control, Attribute: start up current level, 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 */ \
@@ -82,7 +90,6 @@
/* Cluster: Basic, Attribute: Location, Privilege: view */ \
/* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
- /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
@@ -90,74 +97,83 @@
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
+ /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
/* Cluster: User Label, Attribute: label list, Privilege: view */ \
+ /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
}
////////////////////////////////////////////////////////////////////////////////
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
+ 6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
+ 8, /* Cluster: Level Control, Attribute: start up current level, 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 */ \
40, /* Cluster: Basic, Attribute: Location, Privilege: administer */ \
40, /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: manage */ \
48, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
- 63, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
49, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
+ 63, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
65, /* Cluster: User Label, Attribute: label list, Privilege: manage */ \
+ 768, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \
}
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
+ 16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
+ 16384, /* Cluster: Level Control, Attribute: start up current level, 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 */ \
6, /* Cluster: Basic, Attribute: Location, Privilege: administer */ \
16, /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: manage */ \
0, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
- 0, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
4, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
+ 0, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
0, /* Cluster: User Label, Attribute: label list, Privilege: manage */ \
+ 16400, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \
}
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
+ kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, 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 */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Basic, Attribute: Location, Privilege: administer */ \
kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
- kMatterAccessPrivilegeManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
kMatterAccessPrivilegeManage, /* Cluster: User Label, Attribute: label list, Privilege: manage */ \
+ kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \
}
////////////////////////////////////////////////////////////////////////////////
// Parallel array data (*cluster*, command, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__CLUSTER { \
- 60, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
- 60, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
- 60, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \
- 48, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
- 48, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
- 48, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
- 63, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
- 63, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
- 63, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
- 63, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
+ 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 */ \
49, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
49, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
49, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
49, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
49, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
49, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
+ 60, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
+ 60, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
+ 60, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \
62, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
62, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
62, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
@@ -166,31 +182,32 @@
62, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
62, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
62, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
- 62, /* Cluster: Operational Credentials, Command: RemoveTrustedRootCertificate, Privilege: administer */ \
+ 63, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
+ 63, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
+ 63, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
+ 63, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
}
// Parallel array data (cluster, *command*, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__COMMAND { \
- 0, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
- 1, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
- 2, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \
- 0, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
- 2, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
- 4, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
- 0, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
- 1, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
- 3, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
- 4, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
+ 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 */ \
0, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
2, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
3, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
4, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
6, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
8, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
+ 0, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
+ 1, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
+ 2, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \
0, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
2, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
4, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
@@ -199,31 +216,32 @@
9, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
10, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
11, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
- 12, /* Cluster: Operational Credentials, Command: RemoveTrustedRootCertificate, Privilege: administer */ \
+ 0, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
+ 1, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
+ 3, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
+ 4, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
}
// Parallel array data (cluster, command, *privilege*) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__PRIVILEGE { \
- kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
+ 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 */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
+ kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
+ kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
+ kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
@@ -232,7 +250,10 @@
kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
- kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: RemoveTrustedRootCertificate, Privilege: administer */ \
+ kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
+ kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
+ kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
+ kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/zzz_generated/sl_template/zap-generated/af-gen-event.h b/zzz_generated/sl_template/zap-generated/af-gen-event.h
new file mode 100644
index 00000000000000..6612569e6e3097
--- /dev/null
+++ b/zzz_generated/sl_template/zap-generated/af-gen-event.h
@@ -0,0 +1,71 @@
+/**
+ *
+ * Copyright (c) 2020 Project CHIP Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ *
+ * Copyright (c) 2020 Silicon Labs
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// This file is generated by Simplicity Studio. Please do not edit manually.
+//
+//
+
+// Enclosing macro to prevent multiple inclusion
+#ifndef __AF_GEN_EVENT__
+#define __AF_GEN_EVENT__
+
+// Code used to configure the cluster event mechanism
+#define EMBER_AF_GENERATED_EVENT_CODE \
+ EmberEventControl emberAfLevelControlClusterServerTickCallbackControl1; \
+ static void clusterTickWrapper(EmberEventControl * control, EmberAfTickFunction callback, uint8_t endpoint) \
+ { \
+ /* emberAfPushEndpointNetworkIndex(endpoint); */ \
+ emberEventControlSetInactive(control); \
+ (*callback)(endpoint); \
+ /* emberAfPopNetworkIndex(); */ \
+ } \
+ void emberAfLevelControlClusterServerTickCallbackWrapperFunction1(void) \
+ { \
+ clusterTickWrapper(&emberAfLevelControlClusterServerTickCallbackControl1, emberAfLevelControlClusterServerTickCallback, \
+ 1); \
+ }
+
+// EmberEventData structs used to populate the EmberEventData table
+#define EMBER_AF_GENERATED_EVENTS \
+ { &emberAfLevelControlClusterServerTickCallbackControl1, emberAfLevelControlClusterServerTickCallbackWrapperFunction1 },
+
+#define EMBER_AF_GENERATED_EVENT_STRINGS "Level Control Cluster Server EP 1",
+
+// The length of the event context table used to track and retrieve cluster events
+#define EMBER_AF_EVENT_CONTEXT_LENGTH 1
+
+// EmberAfEventContext structs used to populate the EmberAfEventContext table
+#define EMBER_AF_GENERATED_EVENT_CONTEXT \
+ { 0x1, 0x8, false, EMBER_AF_LONG_POLL, EMBER_AF_OK_TO_SLEEP, &emberAfLevelControlClusterServerTickCallbackControl1 },
+
+#endif // __AF_GEN_EVENT__
diff --git a/zzz_generated/sl_template/callback-stub.cpp b/zzz_generated/sl_template/zap-generated/callback-stub.cpp
similarity index 61%
rename from zzz_generated/sl_template/callback-stub.cpp
rename to zzz_generated/sl_template/zap-generated/callback-stub.cpp
index 871eca74355c02..20850267856b32 100644
--- a/zzz_generated/sl_template/callback-stub.cpp
+++ b/zzz_generated/sl_template/zap-generated/callback-stub.cpp
@@ -29,70 +29,85 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
{
switch (clusterId)
{
- case ZCL_ACCESS_CONTROL_CLUSTER_ID :
+ case ZCL_ACCESS_CONTROL_CLUSTER_ID:
emberAfAccessControlClusterInitCallback(endpoint);
break;
- case ZCL_ADMINISTRATOR_COMMISSIONING_CLUSTER_ID :
+ case ZCL_ADMINISTRATOR_COMMISSIONING_CLUSTER_ID:
emberAfAdministratorCommissioningClusterInitCallback(endpoint);
break;
- case ZCL_BASIC_CLUSTER_ID :
+ case ZCL_BASIC_CLUSTER_ID:
emberAfBasicClusterInitCallback(endpoint);
break;
- case ZCL_DESCRIPTOR_CLUSTER_ID :
+ case ZCL_COLOR_CONTROL_CLUSTER_ID:
+ emberAfColorControlClusterInitCallback(endpoint);
+ break;
+ case ZCL_DESCRIPTOR_CLUSTER_ID:
emberAfDescriptorClusterInitCallback(endpoint);
break;
- case ZCL_DIAGNOSTIC_LOGS_CLUSTER_ID :
+ case ZCL_DIAGNOSTIC_LOGS_CLUSTER_ID:
emberAfDiagnosticLogsClusterInitCallback(endpoint);
break;
- case ZCL_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_ID :
+ case ZCL_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_ID:
emberAfEthernetNetworkDiagnosticsClusterInitCallback(endpoint);
break;
- case ZCL_FIXED_LABEL_CLUSTER_ID :
+ case ZCL_FIXED_LABEL_CLUSTER_ID:
emberAfFixedLabelClusterInitCallback(endpoint);
break;
- case ZCL_GENERAL_COMMISSIONING_CLUSTER_ID :
+ case ZCL_GENERAL_COMMISSIONING_CLUSTER_ID:
emberAfGeneralCommissioningClusterInitCallback(endpoint);
break;
- case ZCL_GENERAL_DIAGNOSTICS_CLUSTER_ID :
+ case ZCL_GENERAL_DIAGNOSTICS_CLUSTER_ID:
emberAfGeneralDiagnosticsClusterInitCallback(endpoint);
break;
- case ZCL_GROUP_KEY_MANAGEMENT_CLUSTER_ID :
+ case ZCL_GROUP_KEY_MANAGEMENT_CLUSTER_ID:
emberAfGroupKeyManagementClusterInitCallback(endpoint);
break;
- case ZCL_GROUPS_CLUSTER_ID :
+ case ZCL_GROUPS_CLUSTER_ID:
emberAfGroupsClusterInitCallback(endpoint);
break;
- case ZCL_LOCALIZATION_CONFIGURATION_CLUSTER_ID :
+ case ZCL_IDENTIFY_CLUSTER_ID:
+ emberAfIdentifyClusterInitCallback(endpoint);
+ break;
+ case ZCL_LEVEL_CONTROL_CLUSTER_ID:
+ emberAfLevelControlClusterInitCallback(endpoint);
+ break;
+ case ZCL_LOCALIZATION_CONFIGURATION_CLUSTER_ID:
emberAfLocalizationConfigurationClusterInitCallback(endpoint);
break;
- case ZCL_NETWORK_COMMISSIONING_CLUSTER_ID :
+ case ZCL_NETWORK_COMMISSIONING_CLUSTER_ID:
emberAfNetworkCommissioningClusterInitCallback(endpoint);
break;
- case ZCL_OTA_PROVIDER_CLUSTER_ID :
+ case ZCL_OTA_PROVIDER_CLUSTER_ID:
emberAfOtaSoftwareUpdateProviderClusterInitCallback(endpoint);
break;
- case ZCL_OTA_REQUESTOR_CLUSTER_ID :
+ case ZCL_OTA_REQUESTOR_CLUSTER_ID:
emberAfOtaSoftwareUpdateRequestorClusterInitCallback(endpoint);
break;
- case ZCL_OPERATIONAL_CREDENTIALS_CLUSTER_ID :
+ case ZCL_OCCUPANCY_SENSING_CLUSTER_ID:
+ emberAfOccupancySensingClusterInitCallback(endpoint);
+ break;
+ case ZCL_ON_OFF_CLUSTER_ID:
+ emberAfOnOffClusterInitCallback(endpoint);
+ break;
+ case ZCL_OPERATIONAL_CREDENTIALS_CLUSTER_ID:
emberAfOperationalCredentialsClusterInitCallback(endpoint);
break;
- case ZCL_SOFTWARE_DIAGNOSTICS_CLUSTER_ID :
+ case ZCL_SOFTWARE_DIAGNOSTICS_CLUSTER_ID:
emberAfSoftwareDiagnosticsClusterInitCallback(endpoint);
break;
- case ZCL_SWITCH_CLUSTER_ID :
+ case ZCL_SWITCH_CLUSTER_ID:
emberAfSwitchClusterInitCallback(endpoint);
break;
- case ZCL_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_ID :
+ case ZCL_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_ID:
emberAfThreadNetworkDiagnosticsClusterInitCallback(endpoint);
break;
- case ZCL_TIME_FORMAT_LOCALIZATION_CLUSTER_ID :
+ case ZCL_TIME_FORMAT_LOCALIZATION_CLUSTER_ID:
emberAfTimeFormatLocalizationClusterInitCallback(endpoint);
break;
- case ZCL_USER_LABEL_CLUSTER_ID :
+ case ZCL_USER_LABEL_CLUSTER_ID:
emberAfUserLabelClusterInitCallback(endpoint);
break;
- case ZCL_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_ID :
+ case ZCL_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_ID:
emberAfWiFiNetworkDiagnosticsClusterInitCallback(endpoint);
break;
default:
@@ -116,6 +131,11 @@ void __attribute__((weak)) emberAfBasicClusterInitCallback(EndpointId endpoint)
// To prevent warning
(void) endpoint;
}
+void __attribute__((weak)) emberAfColorControlClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
void __attribute__((weak)) emberAfDescriptorClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -156,6 +176,16 @@ 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)) emberAfLevelControlClusterInitCallback(EndpointId endpoint)
+{
+ // To prevent warning
+ (void) endpoint;
+}
void __attribute__((weak)) emberAfLocalizationConfigurationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
@@ -176,6 +206,16 @@ void __attribute__((weak)) emberAfOtaSoftwareUpdateRequestorClusterInitCallback(
// To prevent warning
(void) endpoint;
}
+void __attribute__((weak)) emberAfOccupancySensingClusterInitCallback(EndpointId endpoint)
+{
+ // 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
@@ -220,58 +260,49 @@ void __attribute__((weak)) emberAfAddToCurrentAppTasksCallback(EmberAfApplicatio
void __attribute__((weak)) emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {}
-EmberAfAttributeWritePermission __attribute__((weak)) emberAfAllowNetworkWriteAttributeCallback(
- EndpointId endpoint, ClusterId clusterId,
- AttributeId attributeId,
- uint8_t * value, uint8_t type)
+EmberAfAttributeWritePermission __attribute__((weak))
+emberAfAllowNetworkWriteAttributeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t * value,
+ uint8_t type)
{
return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default
}
-bool __attribute__((weak)) emberAfAttributeReadAccessCallback(
- EndpointId endpoint, ClusterId clusterId, AttributeId attributeId)
+bool __attribute__((weak)) emberAfAttributeReadAccessCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId)
{
return true;
}
-bool __attribute__((weak)) emberAfAttributeWriteAccessCallback(
- EndpointId endpoint, ClusterId clusterId, AttributeId attributeId)
+bool __attribute__((weak)) emberAfAttributeWriteAccessCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId)
{
return true;
}
-bool __attribute__((weak)) emberAfDefaultResponseCallback(
- ClusterId clusterId, CommandId commandId, EmberAfStatus status)
+bool __attribute__((weak)) emberAfDefaultResponseCallback(ClusterId clusterId, CommandId commandId, EmberAfStatus status)
{
return false;
}
-bool __attribute__((weak)) emberAfPreMessageSendCallback(
- EmberAfMessageStruct * messageStruct, EmberStatus * status)
+bool __attribute__((weak)) emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status)
{
return false;
}
-bool __attribute__((weak)) emberAfMessageSentCallback(
- const MessageSendDestination & destination,
- EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
- EmberStatus status)
+bool __attribute__((weak)) emberAfMessageSentCallback(const MessageSendDestination & destination, EmberApsFrame * apsFrame,
+ uint16_t msgLen, uint8_t * message, EmberStatus status)
{
return false;
}
-EmberAfStatus __attribute__((weak)) emberAfExternalAttributeReadCallback(
- EndpointId endpoint, ClusterId clusterId,
- const EmberAfAttributeMetadata * attributeMetadata,
- uint8_t * buffer, uint16_t maxReadLength)
+EmberAfStatus __attribute__((weak))
+emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterId clusterId, const EmberAfAttributeMetadata * attributeMetadata,
+ uint8_t * buffer, uint16_t maxReadLength)
{
return EMBER_ZCL_STATUS_FAILURE;
}
-EmberAfStatus __attribute__((weak)) emberAfExternalAttributeWriteCallback(
- EndpointId endpoint, ClusterId clusterId,
- const EmberAfAttributeMetadata * attributeMetadata,
- uint8_t * buffer)
+EmberAfStatus __attribute__((weak))
+emberAfExternalAttributeWriteCallback(EndpointId endpoint, ClusterId clusterId, const EmberAfAttributeMetadata * attributeMetadata,
+ uint8_t * buffer)
{
return EMBER_ZCL_STATUS_FAILURE;
}
@@ -281,17 +312,16 @@ uint32_t __attribute__((weak)) emberAfGetCurrentTimeCallback()
return 0;
}
-bool __attribute__((weak)) emberAfGetEndpointInfoCallback(
- EndpointId endpoint, uint8_t * returnNetworkIndex,
- EmberAfEndpointInfoStruct * returnEndpointInfo)
+bool __attribute__((weak))
+emberAfGetEndpointInfoCallback(EndpointId endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo)
{
return false;
}
void __attribute__((weak)) emberAfRegistrationAbortCallback() {}
-EmberStatus __attribute__((weak)) emberAfInterpanSendMessageCallback(
- EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message)
+EmberStatus __attribute__((weak))
+emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message)
{
return EMBER_LIBRARY_NOT_PRESENT;
}
@@ -301,15 +331,13 @@ bool __attribute__((weak)) emberAfStartMoveCallback()
return false;
}
-chip::Protocols::InteractionModel::Status __attribute__((weak)) MatterPreAttributeChangeCallback(
- const chip::app::ConcreteAttributePath & attributePath,
- uint8_t type, uint16_t size, uint8_t * value)
+chip::Protocols::InteractionModel::Status __attribute__((weak))
+MatterPreAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size,
+ uint8_t * value)
{
return chip::Protocols::InteractionModel::Status::Success;
}
-void __attribute__((weak)) MatterPostAttributeChangeCallback(
- const chip::app::ConcreteAttributePath & attributePath,
- uint8_t type, uint16_t size, uint8_t * value)
-{
-}
+void __attribute__((weak)) MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type,
+ uint16_t size, uint8_t * value)
+{}
diff --git a/zzz_generated/sl_template/zap-generated/endpoint_config.h b/zzz_generated/sl_template/zap-generated/endpoint_config.h
new file mode 100644
index 00000000000000..79a1d13a3c4368
--- /dev/null
+++ b/zzz_generated/sl_template/zap-generated/endpoint_config.h
@@ -0,0 +1,1103 @@
+/*
+ *
+ * Copyright (c) 2022 Project CHIP Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// THIS FILE IS GENERATED BY ZAP
+
+// Prevent multiple inclusion
+#pragma once
+
+#include
+
+// Default values for the attributes longer than a pointer,
+// in a form of a binary blob
+// Separate block is generated for big-endian and little-endian cases.
+#if BIGENDIAN_CPU
+#define GENERATED_DEFAULTS \
+ { \
+ \
+ /* Endpoint: 0, Cluster: General Commissioning (server), big-endian */ \
+ \
+ /* 0 - Breadcrumb, */ \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+ }
+
+#else // !BIGENDIAN_CPU
+#define GENERATED_DEFAULTS \
+ { \
+ \
+ /* Endpoint: 0, Cluster: General Commissioning (server), little-endian */ \
+ \
+ /* 0 - Breadcrumb, */ \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+ }
+
+#endif // BIGENDIAN_CPU
+
+#define GENERATED_DEFAULTS_COUNT (1)
+
+#define ZAP_TYPE(type) ZCL_##type##_ATTRIBUTE_TYPE
+#define ZAP_LONG_DEFAULTS_INDEX(index) \
+ { \
+ &generatedDefaults[index] \
+ }
+#define ZAP_MIN_MAX_DEFAULTS_INDEX(index) \
+ { \
+ &minMaxDefaults[index] \
+ }
+#define ZAP_EMPTY_DEFAULT() \
+ { \
+ (uint32_t) 0 \
+ }
+#define ZAP_SIMPLE_DEFAULT(x) \
+ { \
+ (uint32_t) x \
+ }
+
+// This is an array of EmberAfAttributeMinMaxValue structures.
+#define GENERATED_MIN_MAX_DEFAULT_COUNT 4
+#define GENERATED_MIN_MAX_DEFAULTS \
+ { \
+ \
+ /* Endpoint: 0, Cluster: Time Format Localization (server) */ \
+ { (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 */ \
+ \
+ /* Endpoint: 1, Cluster: Level Control (server) */ \
+ { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \
+ \
+ /* Endpoint: 1, Cluster: Color Control (server) */ \
+ { \
+ (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0xFEFF \
+ } /* StartUpColorTemperatureMireds */ \
+ }
+
+#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
+// This is an array of EmberAfAttributeMetadata structures.
+#define GENERATED_ATTRIBUTE_COUNT 248
+#define GENERATED_ATTRIBUTES \
+ { \
+ \
+ /* Endpoint: 0, Cluster: Groups (server) */ \
+ { 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* name support */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, 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 */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Access Control (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* ACL */ \
+ { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* Extension */ \
+ { 0x00000002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* SubjectsPerAccessControlEntry */ \
+ { 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TargetsPerAccessControlEntry */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* AccessControlEntriesPerFabric */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Basic (server) */ \
+ { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* DataModelRevision */ \
+ { 0x00000001, ZAP_TYPE(CHAR_STRING), 33, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* VendorName */ \
+ { 0x00000002, ZAP_TYPE(VENDOR_ID), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* VendorID */ \
+ { 0x00000003, ZAP_TYPE(CHAR_STRING), 33, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* ProductName */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* ProductID */ \
+ { 0x00000005, ZAP_TYPE(CHAR_STRING), 33, \
+ ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* NodeLabel */ \
+ { 0x00000006, ZAP_TYPE(CHAR_STRING), 3, \
+ ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* Location */ \
+ { 0x00000007, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* HardwareVersion */ \
+ { 0x00000008, ZAP_TYPE(CHAR_STRING), 65, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* HardwareVersionString */ \
+ { 0x00000009, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* SoftwareVersion */ \
+ { 0x0000000A, ZAP_TYPE(CHAR_STRING), 65, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* SoftwareVersionString */ \
+ { 0x0000000B, ZAP_TYPE(CHAR_STRING), 17, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* ManufacturingDate */ \
+ { 0x0000000C, ZAP_TYPE(CHAR_STRING), 33, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* PartNumber */ \
+ { 0x0000000D, ZAP_TYPE(LONG_CHAR_STRING), 258, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* ProductURL */ \
+ { 0x0000000E, ZAP_TYPE(CHAR_STRING), 65, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* ProductLabel */ \
+ { 0x0000000F, ZAP_TYPE(CHAR_STRING), 33, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* SerialNumber */ \
+ { 0x00000010, ZAP_TYPE(BOOLEAN), 1, \
+ ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_SIMPLE_DEFAULT(0) }, /* LocalConfigDisabled */ \
+ { 0x00000011, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* Reachable */ \
+ { 0x00000012, ZAP_TYPE(CHAR_STRING), 33, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \
+ ZAP_EMPTY_DEFAULT() }, /* UniqueID */ \
+ { 0x00000013, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CapabilityMinima */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* DefaultOtaProviders */ \
+ { 0x00000001, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(1) }, /* UpdatePossible */ \
+ { 0x00000002, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* UpdateState */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0) }, /* UpdateStateProgress */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Localization Configuration (server) */ \
+ { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportedLocales */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Time Format Localization (server) */ \
+ { 0x00000000, ZAP_TYPE(ENUM8), 1, \
+ ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(0) }, /* HourFormat */ \
+ { 0x00000001, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_SIMPLE_DEFAULT(0) }, /* ActiveCalendarType */ \
+ { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* SupportedCalendarTypes */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: General Commissioning (server) */ \
+ { 0x00000000, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_LONG_DEFAULTS_INDEX(0) }, /* Breadcrumb */ \
+ { 0x00000001, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* BasicCommissioningInfo */ \
+ { 0x00000002, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RegulatoryConfig */ \
+ { 0x00000003, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* LocationCapability */ \
+ { 0x00000004, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* SupportsConcurrentConnection */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(6) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Network Commissioning (server) */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* MaxNetworks */ \
+ { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* Networks */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ScanMaxTimeSeconds */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ConnectMaxTimeSeconds */ \
+ { 0x00000004, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* InterfaceEnabled */ \
+ { 0x00000005, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastNetworkingStatus */ \
+ { 0x00000006, ZAP_TYPE(OCTET_STRING), 33, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastNetworkID */ \
+ { 0x00000007, ZAP_TYPE(INT32S), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastConnectErrorValue */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(2) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: General Diagnostics (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NetworkInterfaces */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RebootCount */ \
+ { 0x00000002, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* UpTime */ \
+ { 0x00000003, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TotalOperationalHours */ \
+ { 0x00000004, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BootReasons */ \
+ { 0x00000005, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* ActiveHardwareFaults */ \
+ { 0x00000006, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveRadioFaults */ \
+ { 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaults */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ThreadMetrics */ \
+ { 0x00000001, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentHeapFree */ \
+ { 0x00000002, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentHeapUsed */ \
+ { 0x00000003, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* CurrentHeapHighWatermark */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \
+ { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* channel */ \
+ { 0x00000001, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* RoutingRole */ \
+ { 0x00000002, ZAP_TYPE(CHAR_STRING), 17, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* NetworkName */ \
+ { 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* PanId */ \
+ { 0x00000004, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* ExtendedPanId */ \
+ { 0x00000005, ZAP_TYPE(OCTET_STRING), 18, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* MeshLocalPrefix */ \
+ { 0x00000006, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \
+ { 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NeighborTableList */ \
+ { 0x00000008, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RouteTableList */ \
+ { 0x00000009, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* PartitionId */ \
+ { 0x0000000A, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* weighting */ \
+ { 0x0000000B, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* DataVersion */ \
+ { 0x0000000C, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* StableDataVersion */ \
+ { 0x0000000D, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* LeaderRouterId */ \
+ { 0x0000000E, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* DetachedRoleCount */ \
+ { 0x0000000F, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ChildRoleCount */ \
+ { 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RouterRoleCount */ \
+ { 0x00000011, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* LeaderRoleCount */ \
+ { 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* AttachAttemptCount */ \
+ { 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* PartitionIdChangeCount */ \
+ { 0x00000014, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* BetterPartitionAttachAttemptCount */ \
+ { 0x00000015, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* ParentChangeCount */ \
+ { 0x00000016, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxTotalCount */ \
+ { 0x00000017, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxUnicastCount */ \
+ { 0x00000018, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxBroadcastCount */ \
+ { 0x00000019, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TxAckRequestedCount */ \
+ { 0x0000001A, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxAckedCount */ \
+ { 0x0000001B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TxNoAckRequestedCount */ \
+ { 0x0000001C, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxDataCount */ \
+ { 0x0000001D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxDataPollCount */ \
+ { 0x0000001E, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxBeaconCount */ \
+ { 0x0000001F, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TxBeaconRequestCount */ \
+ { 0x00000020, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxOtherCount */ \
+ { 0x00000021, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxRetryCount */ \
+ { 0x00000022, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TxDirectMaxRetryExpiryCount */ \
+ { 0x00000023, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TxIndirectMaxRetryExpiryCount */ \
+ { 0x00000024, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxErrCcaCount */ \
+ { 0x00000025, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxErrAbortCount */ \
+ { 0x00000026, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TxErrBusyChannelCount */ \
+ { 0x00000027, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxTotalCount */ \
+ { 0x00000028, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxUnicastCount */ \
+ { 0x00000029, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxBroadcastCount */ \
+ { 0x0000002A, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxDataCount */ \
+ { 0x0000002B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxDataPollCount */ \
+ { 0x0000002C, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxBeaconCount */ \
+ { 0x0000002D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* RxBeaconRequestCount */ \
+ { 0x0000002E, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxOtherCount */ \
+ { 0x0000002F, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* RxAddressFilteredCount */ \
+ { 0x00000030, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* RxDestAddrFilteredCount */ \
+ { 0x00000031, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* RxDuplicatedCount */ \
+ { 0x00000032, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* RxErrNoFrameCount */ \
+ { 0x00000033, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* RxErrUnknownNeighborCount */ \
+ { 0x00000034, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* RxErrInvalidSrcAddrCount */ \
+ { 0x00000035, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxErrSecCount */ \
+ { 0x00000036, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxErrFcsCount */ \
+ { 0x00000037, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxErrOtherCount */ \
+ { 0x00000038, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* ActiveTimestamp */ \
+ { 0x00000039, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* PendingTimestamp */ \
+ { 0x0000003A, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* delay */ \
+ { 0x0000003B, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* SecurityPolicy */ \
+ { 0x0000003C, ZAP_TYPE(OCTET_STRING), 5, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* ChannelMask */ \
+ { 0x0000003D, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* OperationalDatasetComponents */ \
+ { 0x0000003E, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaultsList */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x000F) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */ \
+ { 0x00000000, ZAP_TYPE(OCTET_STRING), 7, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* bssid */ \
+ { 0x00000001, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* SecurityType */ \
+ { 0x00000002, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* WiFiVersion */ \
+ { 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* ChannelNumber */ \
+ { 0x00000004, ZAP_TYPE(INT8S), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* Rssi */ \
+ { 0x00000005, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BeaconLostCount */ \
+ { 0x00000006, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BeaconRxCount */ \
+ { 0x00000007, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* PacketMulticastRxCount */ \
+ { 0x00000008, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* PacketMulticastTxCount */ \
+ { 0x00000009, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* PacketUnicastRxCount */ \
+ { 0x0000000A, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* PacketUnicastTxCount */ \
+ { 0x0000000B, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentMaxRate */ \
+ { 0x0000000C, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */ \
+ { 0x00000000, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* PHYRate */ \
+ { 0x00000001, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* FullDuplex */ \
+ { 0x00000002, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketRxCount */ \
+ { 0x00000003, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketTxCount */ \
+ { 0x00000004, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxErrCount */ \
+ { 0x00000005, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CollisionCount */ \
+ { 0x00000006, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \
+ { 0x00000007, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* CarrierDetect */ \
+ { 0x00000008, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TimeSinceReset */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* WindowStatus */ \
+ { 0x00000001, ZAP_TYPE(FABRIC_IDX), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* AdminFabricIndex */ \
+ { 0x00000002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* AdminVendorId */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Operational Credentials (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NOCs */ \
+ { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* Fabrics */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportedFabrics */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* CommissionedFabrics */ \
+ { 0x00000004, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* TrustedRootCertificates */ \
+ { 0x00000005, ZAP_TYPE(FABRIC_IDX), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* CurrentFabricIndex */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Group Key Management (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* GroupKeyMap */ \
+ { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* GroupTable */ \
+ { 0x00000002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* MaxGroupsPerFabric */ \
+ { 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \
+ ZAP_EMPTY_DEFAULT() }, /* MaxGroupKeysPerFabric */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: Fixed Label (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* label list */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 0, Cluster: User Label (server) */ \
+ { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* label list */ \
+ { 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(0x0000) }, /* identify time */ \
+ { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \
+ { 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 */ \
+ { 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(0x00) }, /* OnOff */ \
+ { 0x00004000, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* GlobalSceneControl */ \
+ { 0x00004001, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* OnTime */ \
+ { 0x00004002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* 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: Level Control (server) */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x01) }, /* current level */ \
+ { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \
+ { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* min level */ \
+ { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* current frequency */ \
+ { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* min frequency */ \
+ { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* max frequency */ \
+ { 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \
+ { 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_SIMPLE_DEFAULT(0x0000) }, /* on off transition time */ \
+ { 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(0xFF) }, /* on level */ \
+ { 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* on transition time */ \
+ { 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_EMPTY_DEFAULT() }, /* off transition time */ \
+ { 0x00000014, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(50) }, /* default move rate */ \
+ { 0x00004000, ZAP_TYPE(INT8U), 1, \
+ ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \
+ ZAP_SIMPLE_DEFAULT(255) }, /* start up current level */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* 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 */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 1, Cluster: Color Control (server) */ \
+ { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentHue */ \
+ { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentSaturation */ \
+ { 0x00000002, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \
+ { 0x00000003, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x616B) }, /* CurrentX */ \
+ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x607D) }, /* CurrentY */ \
+ { 0x00000007, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x00FA) }, /* ColorTemperature */ \
+ { 0x00000008, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* ColorMode */ \
+ { 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x00) }, /* Options */ \
+ { 0x00000010, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* NumberOfPrimaries */ \
+ { 0x00004000, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* EnhancedCurrentHue */ \
+ { 0x00004001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* EnhancedColorMode */ \
+ { 0x00004002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* ColorLoopActive */ \
+ { 0x00004003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* ColorLoopDirection */ \
+ { 0x00004004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0019) }, /* ColorLoopTime */ \
+ { 0x00004005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x2300) }, /* ColorLoopStartEnhancedHue */ \
+ { 0x00004006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ColorLoopStoredEnhancedHue */ \
+ { 0x0000400A, ZAP_TYPE(BITMAP16), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ColorCapabilities */ \
+ { 0x0000400B, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ColorTempPhysicalMinMireds */ \
+ { 0x0000400C, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFEFF) }, /* ColorTempPhysicalMaxMireds */ \
+ { 0x0000400D, ZAP_TYPE(INT16U), 2, 0, ZAP_EMPTY_DEFAULT() }, /* CoupleColorTempToLevelMinMireds */ \
+ { 0x00004010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \
+ ZAP_MIN_MAX_DEFAULTS_INDEX(3) }, /* StartUpColorTemperatureMireds */ \
+ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x1F) }, /* FeatureMap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \
+ \
+ /* Endpoint: 1, Cluster: Occupancy Sensing (server) */ \
+ { 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* occupancy */ \
+ { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* occupancy sensor type */ \
+ { 0x00000002, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* occupancy sensor type bitmap */ \
+ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */ \
+ }
+
+// This is an array of EmberAfCluster structures.
+#define ZAP_ATTRIBUTE_INDEX(index) (&generatedAttributes[index])
+
+#define ZAP_GENERATED_COMMANDS_INDEX(index) ((chip::CommandId *) (&generatedCommands[index]))
+
+// Cluster function static arrays
+#define GENERATED_FUNCTION_ARRAYS \
+ const EmberAfGenericClusterFunction chipFuncArrayGroupsServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfGroupsClusterServerInitCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayBasicServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfBasicClusterServerInitCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayLocalizationConfigurationServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfLocalizationConfigurationClusterServerInitCallback, \
+ (EmberAfGenericClusterFunction) MatterLocalizationConfigurationClusterServerPreAttributeChangedCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayTimeFormatLocalizationServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfTimeFormatLocalizationClusterServerInitCallback, \
+ (EmberAfGenericClusterFunction) MatterTimeFormatLocalizationClusterServerPreAttributeChangedCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayIdentifyServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfIdentifyClusterServerInitCallback, \
+ (EmberAfGenericClusterFunction) MatterIdentifyClusterServerAttributeChangedCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayOnOffServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayLevelControlServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfLevelControlClusterServerInitCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayColorControlServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfColorControlClusterServerInitCallback, \
+ }; \
+ const EmberAfGenericClusterFunction chipFuncArrayOccupancySensingServer[] = { \
+ (EmberAfGenericClusterFunction) emberAfOccupancySensingClusterServerInitCallback, \
+ };
+
+// clang-format off
+#define GENERATED_COMMANDS { \
+ /* Endpoint: 0, Cluster: Groups (server) */\
+ /* AcceptedCommandList (index=0) */ \
+ 0x00000000 /* AddGroup */, \
+ 0x00000001 /* ViewGroup */, \
+ 0x00000002 /* GetGroupMembership */, \
+ 0x00000003 /* RemoveGroup */, \
+ 0x00000004 /* RemoveAllGroups */, \
+ 0x00000005 /* AddGroupIfIdentifying */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=7)*/ \
+ 0x00000000 /* AddGroupResponse */, \
+ 0x00000001 /* ViewGroupResponse */, \
+ 0x00000002 /* GetGroupMembershipResponse */, \
+ 0x00000003 /* RemoveGroupResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */\
+ /* AcceptedCommandList (index=12) */ \
+ 0x00000000 /* AnnounceOtaProvider */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: General Commissioning (server) */\
+ /* AcceptedCommandList (index=14) */ \
+ 0x00000000 /* ArmFailSafe */, \
+ 0x00000002 /* SetRegulatoryConfig */, \
+ 0x00000004 /* CommissioningComplete */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=18)*/ \
+ 0x00000001 /* ArmFailSafeResponse */, \
+ 0x00000003 /* SetRegulatoryConfigResponse */, \
+ 0x00000005 /* CommissioningCompleteResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: Network Commissioning (server) */\
+ /* AcceptedCommandList (index=22) */ \
+ 0x00000000 /* ScanNetworks */, \
+ 0x00000002 /* AddOrUpdateWiFiNetwork */, \
+ 0x00000003 /* AddOrUpdateThreadNetwork */, \
+ 0x00000004 /* RemoveNetwork */, \
+ 0x00000006 /* ConnectNetwork */, \
+ 0x00000008 /* ReorderNetwork */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=29)*/ \
+ 0x00000001 /* ScanNetworksResponse */, \
+ 0x00000005 /* NetworkConfigResponse */, \
+ 0x00000007 /* ConnectNetworkResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: Diagnostic Logs (server) */\
+ /* AcceptedCommandList (index=33) */ \
+ 0x00000000 /* RetrieveLogsRequest */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=35)*/ \
+ 0x00000001 /* RetrieveLogsResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: Software Diagnostics (server) */\
+ /* AcceptedCommandList (index=37) */ \
+ 0x00000000 /* ResetWatermarks */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */\
+ /* AcceptedCommandList (index=39) */ \
+ 0x00000000 /* ResetCounts */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */\
+ /* AcceptedCommandList (index=41) */ \
+ 0x00000000 /* ResetCounts */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */\
+ /* AcceptedCommandList (index=43) */ \
+ 0x00000000 /* ResetCounts */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */\
+ /* AcceptedCommandList (index=45) */ \
+ 0x00000000 /* OpenCommissioningWindow */, \
+ 0x00000001 /* OpenBasicCommissioningWindow */, \
+ 0x00000002 /* RevokeCommissioning */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: Operational Credentials (server) */\
+ /* AcceptedCommandList (index=49) */ \
+ 0x00000000 /* AttestationRequest */, \
+ 0x00000002 /* CertificateChainRequest */, \
+ 0x00000004 /* CSRRequest */, \
+ 0x00000006 /* AddNOC */, \
+ 0x00000007 /* UpdateNOC */, \
+ 0x00000009 /* UpdateFabricLabel */, \
+ 0x0000000A /* RemoveFabric */, \
+ 0x0000000B /* AddTrustedRootCertificate */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=58)*/ \
+ 0x00000001 /* AttestationResponse */, \
+ 0x00000003 /* CertificateChainResponse */, \
+ 0x00000005 /* CSRResponse */, \
+ 0x00000008 /* NOCResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 0, Cluster: Group Key Management (server) */\
+ /* AcceptedCommandList (index=63) */ \
+ 0x00000000 /* KeySetWrite */, \
+ 0x00000001 /* KeySetRead */, \
+ 0x00000003 /* KeySetRemove */, \
+ 0x00000004 /* KeySetReadAllIndices */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=68)*/ \
+ 0x00000002 /* KeySetReadResponse */, \
+ 0x00000005 /* KeySetReadAllIndicesResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: Identify (server) */\
+ /* AcceptedCommandList (index=71) */ \
+ 0x00000000 /* Identify */, \
+ 0x00000040 /* TriggerEffect */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: Groups (server) */\
+ /* AcceptedCommandList (index=74) */ \
+ 0x00000000 /* AddGroup */, \
+ 0x00000001 /* ViewGroup */, \
+ 0x00000002 /* GetGroupMembership */, \
+ 0x00000003 /* RemoveGroup */, \
+ 0x00000004 /* RemoveAllGroups */, \
+ 0x00000005 /* AddGroupIfIdentifying */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* GeneratedCommandList (index=81)*/ \
+ 0x00000000 /* AddGroupResponse */, \
+ 0x00000001 /* ViewGroupResponse */, \
+ 0x00000002 /* GetGroupMembershipResponse */, \
+ 0x00000003 /* RemoveGroupResponse */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: On/Off (server) */\
+ /* AcceptedCommandList (index=86) */ \
+ 0x00000000 /* Off */, \
+ 0x00000001 /* On */, \
+ 0x00000002 /* Toggle */, \
+ 0x00000040 /* OffWithEffect */, \
+ 0x00000041 /* OnWithRecallGlobalScene */, \
+ 0x00000042 /* OnWithTimedOff */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: Level Control (server) */\
+ /* AcceptedCommandList (index=93) */ \
+ 0x00000000 /* MoveToLevel */, \
+ 0x00000001 /* Move */, \
+ 0x00000002 /* Step */, \
+ 0x00000003 /* Stop */, \
+ 0x00000004 /* MoveToLevelWithOnOff */, \
+ 0x00000005 /* MoveWithOnOff */, \
+ 0x00000006 /* StepWithOnOff */, \
+ 0x00000007 /* StopWithOnOff */, \
+ chip::kInvalidCommandId /* end of list */, \
+ /* Endpoint: 1, Cluster: Color Control (server) */\
+ /* AcceptedCommandList (index=102) */ \
+ 0x00000000 /* MoveToHue */, \
+ 0x00000001 /* MoveHue */, \
+ 0x00000002 /* StepHue */, \
+ 0x00000003 /* MoveToSaturation */, \
+ 0x00000004 /* MoveSaturation */, \
+ 0x00000005 /* StepSaturation */, \
+ 0x00000006 /* MoveToHueAndSaturation */, \
+ 0x00000007 /* MoveToColor */, \
+ 0x00000008 /* MoveColor */, \
+ 0x00000009 /* StepColor */, \
+ 0x0000000A /* MoveToColorTemperature */, \
+ 0x00000040 /* EnhancedMoveToHue */, \
+ 0x00000041 /* EnhancedMoveHue */, \
+ 0x00000042 /* EnhancedStepHue */, \
+ 0x00000043 /* EnhancedMoveToHueAndSaturation */, \
+ 0x00000044 /* ColorLoopSet */, \
+ 0x00000047 /* StopMoveStep */, \
+ 0x0000004B /* MoveColorTemperature */, \
+ 0x0000004C /* StepColorTemperature */, \
+ chip::kInvalidCommandId /* end of list */, \
+}
+
+// clang-format on
+
+#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
+#define GENERATED_CLUSTER_COUNT 29
+
+// clang-format off
+#define GENERATED_CLUSTERS { \
+ { \
+ /* Endpoint: 0, Cluster: Groups (server) */ \
+ .clusterId = 0x00000004, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(0), \
+ .attributeCount = 2, \
+ .clusterSize = 3, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayGroupsServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 0 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 7 ) ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Descriptor (server) */ \
+ .clusterId = 0x0000001D, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(2), \
+ .attributeCount = 5, \
+ .clusterSize = 0, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Access Control (server) */ \
+ .clusterId = 0x0000001F, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(7), \
+ .attributeCount = 6, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Basic (server) */ \
+ .clusterId = 0x00000028, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(13), \
+ .attributeCount = 21, \
+ .clusterSize = 37, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayBasicServer, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: OTA Software Update Provider (client) */ \
+ .clusterId = 0x00000029, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(34), \
+ .attributeCount = 0, \
+ .clusterSize = 0, \
+ .mask = ZAP_CLUSTER_MASK(CLIENT), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \
+ .clusterId = 0x0000002A, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(34), \
+ .attributeCount = 5, \
+ .clusterSize = 5, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 12 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Localization Configuration (server) */ \
+ .clusterId = 0x0000002B, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(39), \
+ .attributeCount = 2, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
+ .functions = chipFuncArrayLocalizationConfigurationServer, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Time Format Localization (server) */ \
+ .clusterId = 0x0000002C, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(41), \
+ .attributeCount = 4, \
+ .clusterSize = 4, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
+ .functions = chipFuncArrayTimeFormatLocalizationServer, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: General Commissioning (server) */ \
+ .clusterId = 0x00000030, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(45), \
+ .attributeCount = 7, \
+ .clusterSize = 14, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 14 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 18 ) ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Network Commissioning (server) */ \
+ .clusterId = 0x00000031, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(52), \
+ .attributeCount = 10, \
+ .clusterSize = 48, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 22 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 29 ) ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Diagnostic Logs (server) */ \
+ .clusterId = 0x00000032, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(62), \
+ .attributeCount = 0, \
+ .clusterSize = 0, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 33 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 35 ) ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: General Diagnostics (server) */ \
+ .clusterId = 0x00000033, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(62), \
+ .attributeCount = 9, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \
+ .clusterId = 0x00000034, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(71), \
+ .attributeCount = 6, \
+ .clusterSize = 6, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 37 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \
+ .clusterId = 0x00000035, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(77), \
+ .attributeCount = 65, \
+ .clusterSize = 6, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 39 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */ \
+ .clusterId = 0x00000036, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(142), \
+ .attributeCount = 15, \
+ .clusterSize = 6, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 41 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */ \
+ .clusterId = 0x00000037, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(157), \
+ .attributeCount = 11, \
+ .clusterSize = 6, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 43 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Switch (server) */ \
+ .clusterId = 0x0000003B, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(168), \
+ .attributeCount = 0, \
+ .clusterSize = 0, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \
+ .clusterId = 0x0000003C, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(168), \
+ .attributeCount = 4, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 45 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Operational Credentials (server) */ \
+ .clusterId = 0x0000003E, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(172), \
+ .attributeCount = 7, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 49 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 58 ) ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Group Key Management (server) */ \
+ .clusterId = 0x0000003F, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(179), \
+ .attributeCount = 5, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 63 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 68 ) ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: Fixed Label (server) */ \
+ .clusterId = 0x00000040, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(184), \
+ .attributeCount = 2, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 0, Cluster: User Label (server) */ \
+ .clusterId = 0x00000041, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(186), \
+ .attributeCount = 2, \
+ .clusterSize = 2, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Identify (server) */ \
+ .clusterId = 0x00000003, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(188), \
+ .attributeCount = 3, \
+ .clusterSize = 5, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
+ .functions = chipFuncArrayIdentifyServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 71 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Groups (server) */ \
+ .clusterId = 0x00000004, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(191), \
+ .attributeCount = 2, \
+ .clusterSize = 3, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayGroupsServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 74 ) ,\
+ .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 81 ) ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: On/Off (server) */ \
+ .clusterId = 0x00000006, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(193), \
+ .attributeCount = 7, \
+ .clusterSize = 13, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayOnOffServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 86 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Level Control (server) */ \
+ .clusterId = 0x00000008, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(200), \
+ .attributeCount = 16, \
+ .clusterSize = 27, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayLevelControlServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 93 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Descriptor (server) */ \
+ .clusterId = 0x0000001D, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(216), \
+ .attributeCount = 5, \
+ .clusterSize = 0, \
+ .mask = ZAP_CLUSTER_MASK(SERVER), \
+ .functions = NULL, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Color Control (server) */ \
+ .clusterId = 0x00000300, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(221), \
+ .attributeCount = 23, \
+ .clusterSize = 40, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayColorControlServer, \
+ .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 102 ) ,\
+ .generatedCommandList = nullptr ,\
+ },\
+ { \
+ /* Endpoint: 1, Cluster: Occupancy Sensing (server) */ \
+ .clusterId = 0x00000406, \
+ .attributes = ZAP_ATTRIBUTE_INDEX(244), \
+ .attributeCount = 4, \
+ .clusterSize = 5, \
+ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
+ .functions = chipFuncArrayOccupancySensingServer, \
+ .acceptedCommandList = nullptr ,\
+ .generatedCommandList = nullptr ,\
+ },\
+}
+
+// clang-format on
+
+#define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index])
+
+#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 28
+
+// This is an array of EmberAfEndpointType structures.
+#define GENERATED_ENDPOINT_TYPES \
+ { \
+ { ZAP_CLUSTER_INDEX(0), 22, 151 }, { ZAP_CLUSTER_INDEX(22), 7, 93 }, \
+ }
+
+// Largest attribute size is needed for various buffers
+#define ATTRIBUTE_LARGEST (259)
+
+static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, "ATTRIBUTE_LARGEST larger than expected");
+
+// Total size of singleton attributes
+#define ATTRIBUTE_SINGLETONS_SIZE (37)
+
+// Total size of attribute storage
+#define ATTRIBUTE_MAX_SIZE (244)
+
+// Number of fixed endpoints
+#define FIXED_ENDPOINT_COUNT (2)
+
+// Array of endpoints that are supported, the data inside
+// the array is the endpoint number.
+#define FIXED_ENDPOINT_ARRAY \
+ { \
+ 0x0000, 0x0001 \
+ }
+
+// Array of profile ids
+#define FIXED_PROFILE_IDS \
+ { \
+ 0x0103, 0x0103 \
+ }
+
+// Array of device types
+#define FIXED_DEVICE_TYPES \
+ { \
+ { 0x0016, 1 }, { 0x0101, 1 } \
+ }
+
+// Array of device type offsets
+#define FIXED_DEVICE_TYPE_OFFSETS \
+ { \
+ 0, 1 \
+ }
+
+// Array of device type lengths
+#define FIXED_DEVICE_TYPE_LENGTHS \
+ { \
+ 1, 1 \
+ }
+
+// Array of endpoint types supported on each endpoint
+#define FIXED_ENDPOINT_TYPES \
+ { \
+ 0, 1 \
+ }
+
+// Array of networks supported on each endpoint
+#define FIXED_NETWORKS \
+ { \
+ 0, 0 \
+ }
diff --git a/zzz_generated/sl_template/gen_config.h b/zzz_generated/sl_template/zap-generated/gen_config.h
similarity index 80%
rename from zzz_generated/sl_template/gen_config.h
rename to zzz_generated/sl_template/zap-generated/gen_config.h
index 11e3e70642adb4..6460a2243bdc9f 100644
--- a/zzz_generated/sl_template/gen_config.h
+++ b/zzz_generated/sl_template/zap-generated/gen_config.h
@@ -26,140 +26,177 @@
/**** Network Section ****/
#define EMBER_SUPPORTED_NETWORKS (1)
-
#define EMBER_APS_UNICAST_MESSAGE_COUNT 10
/**** Cluster endpoint counts ****/
+#define EMBER_AF_IDENTIFY_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (2)
+#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_LEVEL_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_DESCRIPTOR_CLUSTER_SERVER_ENDPOINT_COUNT (2)
#define EMBER_AF_ACCESS_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_DESCRIPTOR_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_DIAGNOSTIC_LOGS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_FIXED_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_GENERAL_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_GENERAL_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_NETWORK_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_OTA_PROVIDER_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
#define EMBER_AF_OTA_REQUESTOR_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_GENERAL_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_NETWORK_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_DIAGNOSTIC_LOGS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_GENERAL_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_SOFTWARE_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_SWITCH_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
-#define EMBER_AF_USER_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define EMBER_AF_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_SWITCH_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_FIXED_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_USER_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_COLOR_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
+#define EMBER_AF_OCCUPANCY_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
/**** 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 Level Control cluster is included
+#define ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_LEVEL_CONTROL_SERVER
+#define EMBER_AF_PLUGIN_LEVEL_CONTROL
+// User options for server plugin Level Control
+#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MAXIMUM_LEVEL 254
+#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0
+#define EMBER_AF_PLUGIN_LEVEL_CONTROL_RATE 0
+
+// 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
+#define EMBER_AF_PLUGIN_DESCRIPTOR
+
// Use this macro to check if the server side of the Access Control cluster is included
#define ZCL_USING_ACCESS_CONTROL_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_ACCESS_CONTROL_SERVER
#define EMBER_AF_PLUGIN_ACCESS_CONTROL
-// Use this macro to check if the server side of the AdministratorCommissioning cluster is included
-#define ZCL_USING_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_ADMINISTRATOR_COMMISSIONING_SERVER
-#define EMBER_AF_PLUGIN_ADMINISTRATOR_COMMISSIONING
-
// Use this macro to check if the server side of the Basic cluster is included
#define ZCL_USING_BASIC_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_BASIC_SERVER
#define EMBER_AF_PLUGIN_BASIC
-// 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
-#define EMBER_AF_PLUGIN_DESCRIPTOR
+// Use this macro to check if the client side of the OTA Software Update Provider cluster is included
+#define ZCL_USING_OTA_PROVIDER_CLUSTER_CLIENT
+#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_PROVIDER_CLIENT
-// Use this macro to check if the server side of the Diagnostic Logs cluster is included
-#define ZCL_USING_DIAGNOSTIC_LOGS_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_DIAGNOSTIC_LOGS_SERVER
-#define EMBER_AF_PLUGIN_DIAGNOSTIC_LOGS
+// Use this macro to check if the server side of the OTA Software Update Requestor cluster is included
+#define ZCL_USING_OTA_REQUESTOR_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR_SERVER
+#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR
-// Use this macro to check if the server side of the Ethernet Network Diagnostics cluster is included
-#define ZCL_USING_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_ETHERNET_NETWORK_DIAGNOSTICS_SERVER
-#define EMBER_AF_PLUGIN_ETHERNET_NETWORK_DIAGNOSTICS
+// Use this macro to check if the server side of the Localization Configuration cluster is included
+#define ZCL_USING_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_LOCALIZATION_CONFIGURATION_SERVER
+#define EMBER_AF_PLUGIN_LOCALIZATION_CONFIGURATION
-// Use this macro to check if the server side of the Fixed Label cluster is included
-#define ZCL_USING_FIXED_LABEL_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_FIXED_LABEL_SERVER
-#define EMBER_AF_PLUGIN_FIXED_LABEL
+// Use this macro to check if the server side of the Time Format Localization cluster is included
+#define ZCL_USING_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_TIME_FORMAT_LOCALIZATION_SERVER
+#define EMBER_AF_PLUGIN_TIME_FORMAT_LOCALIZATION
// Use this macro to check if the server side of the General Commissioning cluster is included
#define ZCL_USING_GENERAL_COMMISSIONING_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_GENERAL_COMMISSIONING_SERVER
#define EMBER_AF_PLUGIN_GENERAL_COMMISSIONING
-// Use this macro to check if the server side of the General Diagnostics cluster is included
-#define ZCL_USING_GENERAL_DIAGNOSTICS_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_GENERAL_DIAGNOSTICS_SERVER
-#define EMBER_AF_PLUGIN_GENERAL_DIAGNOSTICS
-
-// Use this macro to check if the server side of the Group Key Management cluster is included
-#define ZCL_USING_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_GROUP_KEY_MANAGEMENT_SERVER
-#define EMBER_AF_PLUGIN_GROUP_KEY_MANAGEMENT
-
-// 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 Localization Configuration cluster is included
-#define ZCL_USING_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_LOCALIZATION_CONFIGURATION_SERVER
-#define EMBER_AF_PLUGIN_LOCALIZATION_CONFIGURATION
-
// Use this macro to check if the server side of the Network Commissioning cluster is included
#define ZCL_USING_NETWORK_COMMISSIONING_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_NETWORK_COMMISSIONING_SERVER
#define EMBER_AF_PLUGIN_NETWORK_COMMISSIONING
-// Use this macro to check if the client side of the OTA Software Update Provider cluster is included
-#define ZCL_USING_OTA_PROVIDER_CLUSTER_CLIENT
-#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_PROVIDER_CLIENT
-
-// Use this macro to check if the server side of the OTA Software Update Requestor cluster is included
-#define ZCL_USING_OTA_REQUESTOR_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR_SERVER
-#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR
+// Use this macro to check if the server side of the Diagnostic Logs cluster is included
+#define ZCL_USING_DIAGNOSTIC_LOGS_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_DIAGNOSTIC_LOGS_SERVER
+#define EMBER_AF_PLUGIN_DIAGNOSTIC_LOGS
-// Use this macro to check if the server side of the Operational Credentials cluster is included
-#define ZCL_USING_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS_SERVER
-#define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS
+// Use this macro to check if the server side of the General Diagnostics cluster is included
+#define ZCL_USING_GENERAL_DIAGNOSTICS_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_GENERAL_DIAGNOSTICS_SERVER
+#define EMBER_AF_PLUGIN_GENERAL_DIAGNOSTICS
// Use this macro to check if the server side of the Software Diagnostics cluster is included
#define ZCL_USING_SOFTWARE_DIAGNOSTICS_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_SOFTWARE_DIAGNOSTICS_SERVER
#define EMBER_AF_PLUGIN_SOFTWARE_DIAGNOSTICS
+// Use this macro to check if the server side of the Thread Network Diagnostics cluster is included
+#define ZCL_USING_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_THREAD_NETWORK_DIAGNOSTICS_SERVER
+#define EMBER_AF_PLUGIN_THREAD_NETWORK_DIAGNOSTICS
+
+// Use this macro to check if the server side of the WiFi Network Diagnostics cluster is included
+#define ZCL_USING_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS_SERVER
+#define EMBER_AF_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS
+
+// Use this macro to check if the server side of the Ethernet Network Diagnostics cluster is included
+#define ZCL_USING_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_ETHERNET_NETWORK_DIAGNOSTICS_SERVER
+#define EMBER_AF_PLUGIN_ETHERNET_NETWORK_DIAGNOSTICS
+
// Use this macro to check if the server side of the Switch cluster is included
#define ZCL_USING_SWITCH_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_SWITCH_SERVER
#define EMBER_AF_PLUGIN_SWITCH
-// Use this macro to check if the server side of the Thread Network Diagnostics cluster is included
-#define ZCL_USING_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_THREAD_NETWORK_DIAGNOSTICS_SERVER
-#define EMBER_AF_PLUGIN_THREAD_NETWORK_DIAGNOSTICS
+// Use this macro to check if the server side of the AdministratorCommissioning cluster is included
+#define ZCL_USING_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_ADMINISTRATOR_COMMISSIONING_SERVER
+#define EMBER_AF_PLUGIN_ADMINISTRATOR_COMMISSIONING
-// Use this macro to check if the server side of the Time Format Localization cluster is included
-#define ZCL_USING_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_TIME_FORMAT_LOCALIZATION_SERVER
-#define EMBER_AF_PLUGIN_TIME_FORMAT_LOCALIZATION
+// Use this macro to check if the server side of the Operational Credentials cluster is included
+#define ZCL_USING_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS_SERVER
+#define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS
+
+// Use this macro to check if the server side of the Group Key Management cluster is included
+#define ZCL_USING_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_GROUP_KEY_MANAGEMENT_SERVER
+#define EMBER_AF_PLUGIN_GROUP_KEY_MANAGEMENT
+
+// Use this macro to check if the server side of the Fixed Label cluster is included
+#define ZCL_USING_FIXED_LABEL_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_FIXED_LABEL_SERVER
+#define EMBER_AF_PLUGIN_FIXED_LABEL
// Use this macro to check if the server side of the User Label cluster is included
#define ZCL_USING_USER_LABEL_CLUSTER_SERVER
#define EMBER_AF_PLUGIN_USER_LABEL_SERVER
#define EMBER_AF_PLUGIN_USER_LABEL
-// Use this macro to check if the server side of the WiFi Network Diagnostics cluster is included
-#define ZCL_USING_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
-#define EMBER_AF_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS_SERVER
-#define EMBER_AF_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS
+// Use this macro to check if the server side of the Color Control cluster is included
+#define ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER
+#define EMBER_AF_PLUGIN_COLOR_CONTROL
+// User options for server plugin Color Control
+#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_XY
+#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP
+#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_HSV
+
+// Use this macro to check if the server side of the Occupancy Sensing cluster is included
+#define ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER
+#define EMBER_AF_PLUGIN_OCCUPANCY_SENSING_SERVER
+#define EMBER_AF_PLUGIN_OCCUPANCY_SENSING
diff --git a/zzz_generated/sl_template/gen_tokens.h b/zzz_generated/sl_template/zap-generated/gen_tokens.h
similarity index 100%
rename from zzz_generated/sl_template/gen_tokens.h
rename to zzz_generated/sl_template/zap-generated/gen_tokens.h